0
원격 서버의 파일을 로컬 드라이브에 복사하는 python 스크립트를 만들려고합니다. 문제는 다른 파일을 병렬로 복사하기위한 스레드를 생성하지 않는다는 것입니다.파이썬 스레딩과 shutil이 손 잡고 작동하지 않습니까?
import shutil
import threading
LocalPath = "C:\\folder1"
RemotePath = "X:\\folder1"
# downloader/copier
def monitorCopy (Filename) :
print("Copying of "+Filename+" started.")
shutil.copy(RemotePath+"\\"+Filename+"\\"+Filename+".zip",LocalPath)
print("Copying of "+Filename+" finished.")
# main function
if __name__ == "__main__" :
filelist = ["file1","file2","file3"]
print(range(len(filelist)))
p = []
for i in range(len(filelist)) :
p.append(i)
p[i] = threading.Thread(target=monitorCopy,args=(filelist[i],))
p[i].daemon = True
p[i].start()
p[i].join()
폴더 트리는 다음과 같습니다
Remote Repository
[+] --- Filename
[+] --- Filename.zip
Local Repository
[+] --- Filename.zip
사람이 나를 도와주세요 수 있습니까?
볼 수 있습니다. 그것은 작동합니다. 스레드의 작업이 끝나면 자동으로 목록에서 빠져 나올 수 있습니까? – user3814548
@ user3814548 아니요, 완료된'Thread' 개체는 목록에 남아 있습니다. – dano
흠. 이 작업을 수행하는 방법에 대한 제안이 있습니까? 나는 "t"를 글로벌하게 만들고 "f"를 monitorCopy에 전달하고 t [f] .stop()을 추가 할 것을 생각하고 있습니다. – user3814548