python - Python FTP:从 FTP 读取 .xlsx 作为 pandas 数据帧,而不将 .xlsx 写入磁盘
问题描述
我想从 FTP 连接读取 .xlsx 文件作为 pandas 数据帧,但是我想在内存上执行此操作而不将 .xlsx 写入本地磁盘。
这是我当前的代码:
filename = 'my_excel.xlsx'
localfile = open(filename, 'wb')
ftp.retrbinary('RETR ' + filename, localfile.write, 1024)
ftp.quit()
localfile.close()
在本节之后,我可以从本地磁盘读取 .xlsx 作为 pandas 数据帧,但是我想在缓冲内存中处理它。
我怎样才能做到这一点。谢谢你的帮助=)
解决方案
您可以使用io.BytesIO
对象将数据流写入,然后将其读入 pandas。
import pandas as pd
from io import BytesIO
excel_fp = BytesIO()
filename = 'my_excel.xlsx'
ftp.retrbinary('RETR ' + filename, excel_fp.write, 1024)
# reset the cursor to the start of the file stream
excel_fp.seek(0)
df = pd.read_excel(excel_fp)
推荐阅读
- angular - 提供了重复的列名:角材料数据表
- javascript - 围绕 Bing 翻译和 Node.js 构建项目
- python - Pandas:根据行内容选择列
- swift - 为什么NSButton isEnabled = false 一按
- python - 无法在 div 内的 h2 内的 span 内获取值
- amazon-web-services - 用户在加特林场景中注入时更改标头值
- r - 数据框错误,尝试创建热图
- javascript - useEffect 无限循环异步
- javascript - 一副纸牌补充一次,但不是第二次
- html - 如何在不使用 javascript 的情况下允许输入以 www 开头的 URL?