0

我正在使用 python ftplib 从构建 ftp 服务器下载构建。这些文件大约为 1.5-1.6 GB。我使用批处理文件来运行程序。这样更容易安排下载。问题是,下载的文件似乎不起作用。他们抛出一个兼容性错误(windows)。如果我使用 FileZilla 下载文件,则文件可以正常工作。另外,源文件和下载的文件相差几百B。到底是怎么回事?

import ftplib, sys, os

ftp = ftplib.FTP("<server_name")
try:
    ftp.login(user= "<user>", passwd = "<password>")
except:
    sys.stderr.write('Could not login.')

data=[]
ftp.dir(data.append)
builds=[]

trg=0           
trg_bld=""
for i in data:
    if len(i.split(" "))>12:
        if len(i.split(" ")[12].split("_"))>2:
    #this line is to find the version on the server
            if (i.split(" ")[12].split("_")[1]== "3.1.0"):
                if int(i.split(" ")[12].split("_")[2])>trg:
                    trg_bld = i.split(" ")[12]

trg_file = trg_bld
print trg_file
if os.path.isfile(trg_file):
    sys.stderr.write('File already exists.')
    sys.exit(1)
f= open(trg_file, "w")
ftp.retrbinary('RETR '+trg_bld, f.write)
f.close()
ftp.close()
sys.stdout.write("File download successful.")

批处理文件: E: cd E:\Builds python ftp_sch.py​​ pause

4

1 回答 1

3

f= open(trg_file, "w")->f= open(trg_file, "wb")

如果没有b标志,Python 认为您正在编写 ASCII 并且它正在更改行尾(因此存在大小差异和损坏的二进制文件)。

于 2012-08-20T03:54:23.943 回答