1
我想創建一個代碼來使用pysftp和多處理庫下載相同類型的N個文件。我做了一個基本的python培訓,得到了一些代碼並將它們合併爲一個,但我無法解決它。如果有人幫助我,我會很感激。該錯誤發生在vFtp.close()命令之後。假設開始同時下載的部分。並行下載與多處理和PySftp
from multiprocessing import Pool
import pysftp
import os
vHost='10.11.12.13'
vLogin='admin'
vPwd='pass1234'
vFtpPath='/export/home/'
os.chdir('d:/test/')
os.getcwd()
cnopts=pysftp.CnOpts()
cnopts.hostkeys = None
vFtp=pysftp.Connection(vHost,username=vLogin,password=vPwd,cnopts=cnopts)
vFtp.cwd(vFtpPath)
vObjectList=vFtp.listdir()
vFileList=[]
vFoldList=[]
for vObject in vObjectList:
vType=str(vFtp.lstat(vObject))[:1]
if vType!='d':
vFileList.append(vObject)
else:
vFoldList.append(vObject)
vFtp.close()
def fDownload(vFileAux):
vFtpAux=pysftp.Connection(vHost,username=vLogin,password=vPwd,cnopts=cnopts)
vFtpAux.cwd(vFtpPath)
vFtpAux.get(vFileAux,preserve_mtime=True)
vFtpAux.close()
if __name__ == "__main__":
vPool=Pool(3)
vPool.map(fDownload,vFileList)
非常感謝,非常簡單明瞭的例子。我會做一些測試並讓你知道結果。 –