1. ホーム
  2. python

Python: FTP サーバからファイルをダウンロードする

2023-09-22 10:44:55

質問

いくつかの公開データファイルをダウンロードしようとしています。私はファイルへのリンクを得るためにスクリーンスクレイピングを行いましたが、それらはすべて次のようなものでした。

ftp://ftp.cdc.gov/pub/Health_Statistics/NCHS/nhanes/2001-2002/L28POC_B.xpt

に関するドキュメントが見当たりません。 リクエストライブラリのウェブサイト .

どのように解決するのですか?

requests ライブラリは ftp リンクをサポートしていません。

FTP サーバからファイルをダウンロードするには、次のようにします。

import urllib 

urllib.urlretrieve('ftp://server/path/to/file', 'file')
# if you need to pass credentials:
#   urllib.urlretrieve('ftp://username:password@server/path/to/file', 'file')

または

import shutil
import urllib2
from contextlib import closing

with closing(urllib2.urlopen('ftp://server/path/to/file')) as r:
    with open('file', 'wb') as f:
        shutil.copyfileobj(r, f)

Python3です。

import shutil
import urllib.request as request
from contextlib import closing

with closing(request.urlopen('ftp://server/path/to/file')) as r:
    with open('file', 'wb') as f:
        shutil.copyfileobj(r, f)