【问题标题】:How to write Pandas data frame to Excel file on FTP directly如何将 Pandas 数据框直接写入 FTP 上的 Excel 文件
【发布时间】:2021-04-01 09:32:20
【问题描述】:

我想直接从 Pandas 数据框在 FTP 上创建一个 Excel 文件。我试过这段代码,但我从 Excel 收到“无效的扩展名/损坏的文件”错误:

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_excel(buffer)
text = buffer.getvalue()
bio = io.BytesIO(str.encode(text))

ftp.storbinary('STOR filename.xlsx', bio)

【问题讨论】:

  • 你能发布整个错误吗?

标签: python pandas ftp


【解决方案1】:

Excel 文件是二进制文件。您永远不应该尝试使用StringIO 对象,而应直接使用BytesIO 对象。此外,无需使用getvalue 制作文件的另一个副本,只需将seek 缓冲到上传前的开头即可:

buffer = io.BytesIO()
your_pandas_df.to_excel(buffer)
buffer.seek(0)

ftp.storbinary('STOR filename.xlsx', buffer)

【讨论】:

    猜你喜欢
    • 2020-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-26
    • 2022-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多