使用 csv.reader 从 ftp 下载的 CSV 数据

问题描述 投票:0回答:1

我正在编写一个从 ftp 服务器下载 csv 文件的小脚本,下载后我想在将其写入新文件之前对每一行进行一些计算。

我有 ftp 部分工作,但我不知道如何将 BytesIO 数据用作 csv 数据。

我正在使用下面的代码,但它打印了 0 行。

任何帮助或推动正确的方向将不胜感激。

from ftplib import FTP
import io

ftp = FTP(FTP_SERVER)
ftp.login(FTP_USER, FTP_PASSWORD)
csv_data = io.BytesIO()
ftp.retrbinary('RETR ' + FTP_FILE, csv_data.write)

csv_reader = csv.reader(csv_data, delimiter=",")
for row in csv_reader:
    print(row)
python csv ftp
1个回答
1
投票
  1. 下载完成后,

    BytesIO
    的读写指针在末尾。在阅读之前,您必须回到开头。

  2. 此外,您需要将下载的字节转换为文本。

csv_data.seek(0)
csv_data = io.TextIOWrapper(csv_data, encoding='utf-8')
© www.soinside.com 2019 - 2024. All rights reserved.