2
我想创建一个多处理的ftp上传,就像它在这里以许多不同的方式描述。 skript已经上传了我选择的文件,但每次上传约90 KB后,上传就会分解。有人向我暗示我做错了什么吗? 在此先感谢。 问候彼得Python FTP上传与多处理 - 上传的文件不完整
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import ftplib
from ftplib import FTP
from multiprocessing import Process
import os
##### Config für den Upload Path ####
Path='c:/'
#####################################
def uploadZip(zipName,PathUpload):
# Hochzuladenden XML
# Upload zu Datenausstausch - Test
ftpsportschau= FTP('xxxxx')
ftpsportschau.login ('xxx', 'xxxx')
zipDatei = open('%s%s' %(PathUpload,zipName),'r')
try:
ftpsportschau.storbinary('STOR %s' % zipName, zipDatei)
except ftplib.error_perm:
print "PermError: cannot upload file %s" % zipName
except ftplib.error_temp:
print "TempError: cannot upload file %s" % zipName
zipDatei.close()
ftpsportschau.quit()
return
def UploadAsync(FileListe,PathAsync):
''' Funktion zum Upload mit parallelen Prozessen
Sie enthält nicht den Upload Befehl,sondern nur den Aufruf der Prozesse
'''
print ' List in Async'+'\n'
print FileListe
try:
for filename in FileListe:
p = Process(target=uploadZip, args=(filename,PathAsync))
p.start()
except:
print 'An error has occured'
def Files(PathFiles):
''' Funktion zum Ermitteln der Files'''
UploadListe=[]
Files=os.listdir(PathFiles)
print Files
print '\n'
for files in Files:
if files.endswith('.zip'):
UploadListe.append(files)
else: continue
print UploadListe
print '\n'
return UploadListe
if __name__ == "__main__":
UploadAsync(Files(Path),Path)
你是什么意思“上传分手”?你的脚本究竟打印了什么? –
嗨,Rob,问题在于脚本只上传了第一个90 KB,并没有发出错误通知就停止了。这个问题在打开文件之前没有使用的二进制模式下得到解决。我愚蠢的错误。谢谢回答。 – user3279101
不客气。请记住“接受”我的答案(点击我答案旁边的复选标记),以便其他人不会在此上花费更多时间。 –