据我所知,用 ftp 创建一个空文件是不可能的,您必须在本地驱动器上创建一个空文件,上传它,然后在完成后将其删除。我想知道是否可以这样做:
class FakeFile:
def read(self):
return '\x04'
ftpinstance.storbinary('stor fe', FakeFile())
我认为这可能有效,因为 storbinary 的文档说它接受一个带有“read”方法的对象并调用它直到它返回 EOF,而\x04 是 ASCII EOF 字符。不过我已经试过了,文件最终在服务器上是一个随机的千字节数。我是不是误会了什么?
最佳答案
无需实现您自己的类文件类,只需使用内置模块 StringIO
(或 Python 3 中的 BytesIO
)的内存中文件:
import ftplib
import cStringIO
ftp = ftplib.FTP('ftp.example.com')
ftp.login('user', 'pass')
voidfile = cStringIO.StringIO('')
ftp.storbinary('STOR emptyfile.foo', voidfile)
ftp.close()
voidfile.close()
关于python - 使用伪文件将空文件上传到ftp,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3705464/