使用ftplib将文件传输到FTP服务器后,文件已损坏

时间:2016-08-21 21:29:47

标签: python ftp ftplib

当我上传.gz文件时,我遇到了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)

1 个答案:

答案 0 :(得分:1)

问题在于使用storlines。在这种情况下,需要使用storbinary