2016-08-21 5 views
0

У меня возникла проблема с библиотекой ftplib при загрузке файлов .gz.Файлы повреждены после передачи их на FTP-сервер с использованием ftplib

Сценарий работал раньше, но как-то в одной из моих тысяч выпусков, я изменил то, что вызывает перенос поврежденных файлов. Файлы успешно передаются на ftp-сервер, однако файлы, которые используются в ftp, не будут открыты, потому что они повреждены.

Файлы, которые будут переданы, не имеют проблем. Кроме того, если файлы не сжимаются, передача не вызывает никаких проблем. Это то, что читается .gz

Может ли кто-нибудь сообщить мне, что не так с кодом?

for filename in dir: 

    os.system("gzip %s/%s" % (Path, filename)) 
    time.sleep(5) # Wait up to 4 seconds to compress file 
    zip_filename = filename + '.gz' 

    try: 
     # Connect to the host 
     ftp = ftplib.FTP(host) 
     # Login to the ftp server 
     ftp.login(username, password) 

     # Transfer the file 
     myfile = open(zip_filename, 'rb') 
     ftp.storlines("STOR temp/" + zip_filename, myfile) 
     myfile.close() 

    except ftplib.all_errors as e: 
     print(e) 
+0

Кстати, вам не нужно ждать ничего после 'gzip'; 'os.system' является синхронным - к моменту его возвращения' gzip' уже завершен. –

ответ

1

Проблема заключалась в использовании складок. В этом случае необходимо использовать storbinary