我正在尝试从 FTP 服务器读取文件。该文件是一个.gz
文件。我想知道我是否可以在套接字打开时对此文件执行操作。我尝试遵循两个 StackOverflow 问题中提到的关于在不写入磁盘的情况下读取文件和从 FTP 读取文件而不下载但没有成功的问题。
我知道如何在下载的文件上提取数据/工作,但我不确定我是否可以即时完成。有没有办法连接到站点,在缓冲区中获取数据,可能进行一些数据提取和退出?
尝试 StringIO 时出现错误:
>>> from ftplib import FTP
>>> from StringIO import StringIO
>>> ftp = FTP('ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/PMC-ids.csv.gz')
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
ftp = FTP('ftp://ftp.ncbi.nlm.nih.gov/pub/pmc/PMC-ids.csv.gz')
File "C:\Python27\lib\ftplib.py", line 117, in __init__
self.connect(host)
File "C:\Python27\lib\ftplib.py", line 132, in connect
self.sock = socket.create_connection((self.host, self.port), self.timeout)
File "C:\Python27\lib\socket.py", line 553, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
gaierror: [Errno 11004] getaddrinfo failed
我只需要知道如何将数据放入某个变量并在其上循环,直到读取来自 FTP 的文件。
感谢您的时间和帮助。谢谢!