2016-08-21 2 views
0

.gz 파일을 업로드 할 때 ftplib 라이브러리에 문제가 있습니다.ftplib을 사용하여 FTP 서버로 파일을 전송 한 후 파일이 손상되었습니다.

스크립트는 이전 버전에서 작동했지만 어떻게 든 수천 개의 에디션 중 하나에서 손상된 파일을 전송하도록 변경했습니다. 파일이 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

BTW,'gzip' 이후 아무것도 기다릴 필요가 없습니다. 'os.system'은 동기식입니다 - 반환 할 때까지,'gzip'은 이미 완료되었습니다. –

답변

1

문제는 storlines를 사용하는 것이 었습니다. 이 경우, stouch를 사용해야합니다.

관련 문제