我正在使用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 暂停
答案 0 :(得分:3)
f= open(trg_file, "w")
- &gt; f= open(trg_file, "wb")
没有b
标志,Python认为你正在编写ASCII并且它正在改变行结尾(因此大小差异和破坏的二进制文件)。