我正在编写一个从 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)
下载完成后,
BytesIO
的读写指针在末尾。在阅读之前,您必须回到开头。
此外,您需要将下载的字节转换为文本。
csv_data.seek(0)
csv_data = io.TextIOWrapper(csv_data, encoding='utf-8')