我试图从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
Run Code Online (Sandbox Code Playgroud)
我只需要知道如何将数据放入某个变量并在其上循环,直到读取FTP文件为止.
感谢您的时间和帮助.谢谢!
我想通过FTP上传文本字符串作为文件。
import ftplib
from io import StringIO
file = StringIO()
file.write("aaa")
file.seek(0)
with ftplib.FTP() as ftp:
ftp.connect("192.168.1.104", 2121)
ftp.login("ftp", "ftp123")
ftp.storbinary("STOR 123.txt", file)
Run Code Online (Sandbox Code Playgroud)
此代码返回错误:
TypeError: 'str' does not support the buffer interface
Run Code Online (Sandbox Code Playgroud) 我在远程 FTP 服务器上有很多 zip 存档,它们的大小高达 20TB。我只需要这些 zip 存档中的文件名,以便我可以将它们插入到我的 Python 脚本中。
有没有什么方法可以只获取文件名而不实际下载文件并将它们解压到我的本地计算机上?如果是这样,有人可以指导我找到正确的库/包吗?