pysftpとマルチプロセッシングのlibsを使用して同じタイプのN個のファイルをダウンロードするコードを作成しようとしています。私は基本的なPythonトレーニングを行い、コードを取得してそれらを1つにまとめましたが、うまく動かすことはできません。誰かが私にそれを手伝っていただければ幸いです。エラーは、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)
ありがとう、非常に簡単で明確な例です。私はいくつかのテストを行い、その結果をあなたに知らせます。 –