Ich habe mehrere Threads, von denen jeder Arbeitsverzeichnis ändert und gelegentlich neue in bestimmten Arbeitsverzeichnissen erstellt, Kopieren/Verschieben von Dateien usw. in diesen Verzeichnissen. Denken Sie z .:Was ist ein Thread-spezifischer os.chdir und mkdir in Python?
def thread1:
while True:
os.chdir('dir')
os.mkdir('newdir')
os.system('mv *.png newdir/')
do something
def thread2:
while True:
os.chdir('another-dir')
os.mkdir('another-newdir')
os.system('mv *.png another-newdir/')
do something
ich das Chdir gelesen haben, mkdir Funktionen sind nicht spezifisch für Fäden, sondern global. Was ist ein Weg, dies zu erreichen? Ich kann versuchen, absolute Pfade zu verwenden, aber ist das die beste Lösung?
Ein schneller Weg, es zu lösen, ist, niemals 'os.chdir()' 'aufzurufen. In Ihrem Fall würde es "os.mkdir" ("dir/newdir") werden; os.system ('CD-Verzeichnis && mv * .png newdir /') ''. Beachten Sie, dass das '' cd'' innerhalb des Shell-Befehls ist. –
Noch eine andere Lösung - nur unter Linux - ist die Verwendung der Funktion 'unshare (CLONE_FS)', aber das erfordert definitiv das Schreiben von C oder die Verwendung von ctypes/cffi. –