Ho diversi thread ognuno dei quali sta cambiando le directory di lavoro e occasionalmente ne crea di nuovi in directory di lavoro specifiche, copia/sposta file ecc in queste directory. Pensate ad es .:Che cos'è un file os.chdir e mkdir specifico per il thread 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
Ho letto che chdir, funzioni mkdir non sono specifici di discussioni, ma globale. Qual è un modo per realizzare questo? Posso provare a utilizzare percorsi assoluti ma è quella la soluzione migliore?
Un modo rapido per risolverlo è non chiamare mai '' os.chdir() ''. Nel tuo caso diventerebbe "os.mkdir ('dir/newdir'); os.system ('cd dir && mv * .png newdir /') ''. Si noti che il '' cd'' è all'interno del comando shell. –
Un'altra soluzione, solo su Linux, è usare la funzione 'unshare (CLONE_FS)', ma ciò richiede sicuramente la scrittura C o l'uso di ctypes/cffi. –