【发布时间】:2019-02-12 05:36:41
【问题描述】:
使用“ftplib”Python 包,我连接到主机,然后使用“storbinary: 函数将二进制文件发送到该目录。但是,文件传输没有发生,源文件被覆盖并生成0 字节
在上传文件之前尝试在 ftplib 中使用“cwd”更改到目标目录。 在命令行上尝试了“rsync”,它工作正常(从而建立文件完整性)。
print ('Establishing FTP connection')
ftp = FTP(dest_dir, 'user', 'password')
print '+++++', ftp.pwd()
ftp.cwd(dest_dir)
print 'work dir now', ftp.pwd()
ftp.retrlines('LIST')
f_name = /home/test/file_to_upload
with open(f_name, 'rb') as cfile:
ftp.storbinary('STOR %s' % f_name, cfile)
ftp.quit()
文件:/home/test/file_to_upload 应该上传到 dest_dir,而不是被覆盖并变成一个空文件,即文件内容被删除
【问题讨论】:
-
我不确定,但是您使用 f_name = /home/test/file_to_upload 调用 storbinary,这是一个不是有效文件名的路径。也许尝试硬编码 storbinary 中的文件名以首先检查?
-
你所说的“源文件”是什么意思?是本地系统中的文件还是ftp上的远程文件?
-
f_name 是单个文件或文件列表。你能用单个文件试试吗
-
还有一件事,你将文件存储到 binary_mode 是否可以存储到二进制模式
-
@Tempo810 源文件在我的本地系统中。此外,硬编码文件名不起作用。