2014-02-06 56 views
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) 
+0

你是什么意思“上传分手”?你的脚本究竟打印了什么? –

+0

嗨,Rob,问题在于脚本只上传了第一个90 KB,并没有发出错误通知就停止了。这个问题在打开文件之前没有使用的二进制模式下得到解决。我愚蠢的错误。谢谢回答。 – user3279101

+0

不客气。请记住“接受”我的答案(点击我答案旁边的复选标记),以便其他人不会在此上花费更多时间。 –

回答

0

既然你似乎是转移filesin二进制格式,你应该在你打开使用'b'预选赛:

zipDatei = open('%s%s' %(PathUpload,zipName),'rb') 
+0

嗨,感谢您的回答,您完全正确:(我无法看到,我不知道为什么。 非常感谢。 Regards – user3279101