首页 > 解决方案 > 如何解码从 BytesIO 读取的 FTP 文件

问题描述

我正在尝试读取 FTP 服务器上的文本文件的内容,我的代码可以建立连接并列出目录中存在的所有文件。但是,这里失败了:

from io import BytesIO
import os

r = BytesIO()
ftp.retrbinary("RETR " + "textfile.txt", r)    
print (r)

这打印:

<_io.BytesIO object at 0x03C2CCF0>

首先,我不完全确定这意味着什么,所以如果有人能对此有所了解,我将不胜感激。

此外,当我尝试使用以下代码解码返回值时,我收到此错误:

TypeError: '_io.BytesIO' object is not callable

代码如下所示:

r = BytesIO()
ftp.retrbinary("RETR " + "textfile.txt", r)    
print (r.decode("utf-8"))

标签: pythonftpftplib

解决方案


尝试r.writer.getvalue()

from io import BytesIO
from ftplib import FTP
import os

ftp = FTP('ftp.test.org') 
ftp.login()

r = BytesIO()
ftp.retrbinary("RETR " + "textfile.txt", r.write)    
print (r.getvalue())

https://docs.python.org/3/library/io.html


推荐阅读