我可以通过将文件写入网络服务器然后再次上传来将ftp服务器中的文件复制到其他位置。
有没有办法将文件内容写入内存而不将其写入硬盘并将其上传到服务器。这是我的代码。
filepath = os.path.join(os.path.dirname(os.path.dirname(__file__)),'OpenTable','tempfiles')
ftp = ftplib.FTP('ftphost')
ftp.login('username','password')
filenames = []
ftp.retrlines('NLST', filenames.append)
for filename in filenames:
if filename[len(filename)-3:] == 'zip':
ftp.cwd("/")
filepath1 = os.path.join(filepath,filename)
print filepath1
r = open(filepath1,'w')
ftp.retrbinary('RETR ' + filename, r.write)
ftp.cwd("/BackUp")
r.close()
r = open(filepath1,'r')
ftp.storbinary('STOR ' + filename, r)
r.close()
os.remove(filepath1)
print 'Successfully Backed up ', filename
ftp.quit()
我尝试使用StringIO。它似乎不起作用。
感谢。