python - 使用伪文件将空文件上传到ftp

标签 python file ftp

据我所知,用 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/

相关文章:

java - 使用 RandomAccessFile 在 Java 中清除文件内容

android - 在 Android 上使用 FTP 上传图像

angularjs - 如何使用 ngcordova 文件传输插件将拍摄的图像传输到我的 ftp

python - 根据存储在字典中的条件从 Pandas 数据框中选择数据

python - 按 pandas 列对比率进行分组

python - 沿指定轴的两个 numpy 数组的外部总和

c# - 连接到 ftps ://URL

python - 删除越界的字典键(python)

c++ - 想要创建许多不同的文件,但名称不同

python - 如果两个 python 脚本想写在同一个文件中会发生什么?