我正在使用 Python 的 ftplib 从远程 FTP 站点上传一个 zip 文件。然后我尝试将其写入磁盘。文件写入有效,但是大多数使用 WinZip 或 WinRar 打开 zip 的尝试都失败了;两个应用程序都声称文件已损坏。然而奇怪的是,当右键单击并尝试使用 WinRar 提取文件时,文件将被提取。
所以需要明确的是,文件写入将起作用,但不会在流行的 zip 应用程序中打开,但会使用这些相同的应用程序解压缩。请注意,Python zipfile 模块永远不会无法提取 zip。
这是我用来从 FTP 站点获取 zip 文件的代码(请忽略错误的标签,这不是问题)。
filedata = None
def appender(chunk):
global filedata
filedata += chunk
def getfile(filename):
try:
ftp = None
try:
ftp = FTP(address)
ftp.login('user', 'password')
except Exception, e:
print e
command = 'RETR ' + filename
idx = filename.rfind('/')
path = filename[0:idx]
ftp.cwd(path)
fileonly = filename[idx+1:len(filename)]
ftp.retrbinary('RETR ' + filename, appender)
global filedata
data = filedata
ftp.close()
filedata = ''
return data
except Exception, e:
print e
data = getfile('/archives/myfile.zip')
file = open(pathtoNTFileShare, 'wb')
file.write(data)
file.close()