我正在通过ftp向服务器发送一个xml文件,但它在53KB中被切断为48KB。
代码是:
if __name__ == '__main__':
ftp = ftplib.FTP("IP")
ftp.login(user = 'NAME', passwd = 'PASS')
ftp.cwd('/web/content/tree/_demo')
a.write('<root>\n' + DirXML(dirname) + '\n</root>')
f=open(outputname,'rb')
ftp.storbinary('STOR '+os.path.basename(outputname),f)
f.close()
ftp.quit()
与此相同的问题:Partial Upload With storbinary in python 但当然,这并没有提供答案。该文件通过ftp客户端发送,通过python解释器发送,但不通过脚本发送。
编辑:它不会抛出任何异常,完成正常但是当我查看上传的文件时,它会在最后被切断。如果我删除ftp部分并将文件导出到我的本地计算机,它会很好。缩进只是我在格式化方面做得不好。
答案 0 :(得分:0)
您使用storlines
代替storbinary
。
前者将进行行结束翻译。
storbinary
ftplib代码在传输之前执行TYPE I
,以确保传输模式设置为Image。 (二进制)。
同时检查以确保在传输开始之前已刷新或关闭要传输的文件。通过write
调用写入的数据可能无法在ftp库打开文件时刷新到磁盘。