如何直接从Pandas数据帧在ftp上创建.csv或.xls文件,因为我不想在本地机器上创建一个然后在ftp上推送它.提前谢谢了 :)
正如文档所说:
以二进制传输模式存储文件.cmd应该是一个合适的
STOR命令:"STOR filename".file是一个文件对象(以二进制模式打开),直到EOF使用其read()大小块大小的块中的方法读取,以提供要存储的数据...
因此,您需要使用适当的read方法为其提供类似文件的对象.
字符串不是类似文件的对象,而是一个io.BytesIO.所以:
from ftplib import *
from StringIO import StringIO
import pandas
import io
ftp = FTP('ftp.mysite.com')
ftp.login('un', 'pw')
ftp.cwd('/')
buffer = StringIO.StringIO()
your_pandas_df.to_csv(buffer)
text = buffer.getvalue()
bio = io.BytesIO(str.encode(text))
ftp.storbinary('STOR filename.csv', bio)
Run Code Online (Sandbox Code Playgroud)
作为参考,您可以直接在FTP中引用Python编写创建文件