将.xlsx作为pandas dataframe从FTP读取而不写入磁盘

bxgwgixi  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(140)

我想读取.xlsx文件作为pandas dataframe从FTP连接,但我想这样做内存,而不写.xlsx到我的本地磁盘。
以下是我的当前代码:

  1. import ftplib
  2. import pandas as pd
  3. from io import BytesIO
  4. ftp = ftplib.FTP("host")
  5. ftp.login("ftp_111", "hs12121")
  6. ftp.dir()
  7. listff = ftp.nlst()
  8. flo = BytesIO()
  9. for filename in listff:
  10. try:
  11. ftp.retrbinary('RETR ' + filename, flo.write, 1024)
  12. flo.seek(0)
  13. df = pd.read_excel(flo)
  14. except Exception as e:
  15. print("An exception occurred: ", e)

字符串
KeyError:“存档中没有名为'xl/sharedStrings.xml'的项目”
怎么解决呢?

at0kjp5o

at0kjp5o1#

我猜你会在第二次迭代中得到错误,因为你没有在ftp.retrbinary之前重置flo。我建议您在调用ftp.retrbinary之前移动flo = BytesIO()

  1. flo = BytesIO()
  2. ftp.retrbinary('RETR ' + filename, flo.write)

字符串

  • (我也删除了[blocksize=]1024-它的意义是什么?)*

相关问题