FTP サーバーからファイルを読み込もうとしています。ファイルは.gz
ファイルです。ソケットが開いている間にこのファイルに対してアクションを実行できるかどうかを知りたいです。ディスクに書き込まずにファイルを読み取ることと、ダウンロードせずに FTP からファイルを読み取ることに関する2つの StackOverflow の質問に記載されている内容に従おうとしましたが、成功しませんでした。
データを抽出する方法やダウンロードしたファイルで作業する方法は知っていますが、その場で実行できるかどうかはわかりません。サイトに接続し、バッファにデータを取得し、データを抽出して終了する方法はありますか?
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 からのファイルが読み取られるまで、変数にデータを取得してループする方法を知る必要があります。
お時間をいただき、ありがとうございます。ありがとう!