如何直接在FTP上将pandas数据帧写入csv/xls

tra*_*der 3 python

如何直接从Pandas数据帧在ftp上创建.csv或.xls文件,因为我不想在本地机器上创建一个然后在ftp上推送它.提前谢谢了 :)

Anu*_*sra 8

正如文档所说:

以二进制传输模式存储文件.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编写创建文件