Python 3で文字列として保存されたURLからファイルをダウンロードするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-04 06:48:01
オリジナル
172 人が閲覧しました

How to Download a File from a URL Stored as a String in Python 3?

文字列に格納された URL を使用して Python 3 で Web からファイルをダウンロードする方法

Python 3 の Web サーバーで URL として文字列を渡すと、バイト入力を要求するエラーが発生する可能性があります。この記事では、この問題を回避してファイルを正常に取得するためのいくつかの方法を紹介します。

urllib.request.urlopen の使用

Web ページのコンテンツを取得するには、urllib を利用します。 .request.urlopen()。この関数は応答オブジェクトを返します。このオブジェクトは変数に読み込むことができます。

<code class="python">import urllib.request

url = 'http://example.com/'
response = urllib.request.urlopen(url)
data = response.read()  # a `bytes` object</code>
ログイン後にコピー

urlib.request.urlretrieve を使用する

ダウンロードとファイルを保存するには、urllib.request.urlretrieve 関数を利用します。

<code class="python">import urllib.request

url = 'http://example.com/file.txt'
urllib.request.urlretrieve(url, 'file.txt')</code>
ログイン後にコピー

このメソッドは、指定された URL からファイルをダウンロードし、'file.txt' としてローカルに保存します。

shutil.copyfileobj での urlib.request.urlopen の使用

ダウンロード プロセスをより詳細に制御するには、urllib.request.urlopen() を使用してファイルのようなオブジェクトを返します。このオブジェクトは、shutil.copyfileobj() を使用して実際のファイルにコピーできます。

<code class="python">import urllib.request
import shutil

url = 'http://example.com/file.zip'
with urllib.request.urlopen(url) as response, open('file.zip', 'wb') as out_file:
    shutil.copyfileobj(response, out_file)</code>
ログイン後にコピー

ダウンロードをバイトとして保存

速度を優先する場合は、ダウンロードされたデータはバイト オブジェクトに直接保存し、その後ファイルに書き込むことができますが、これは小さいファイルにのみ適しています:

<code class="python">import urllib.request

url = 'http://example.com/icon.png'
with urllib.request.urlopen(url) as response, open('icon.png', 'wb') as out_file:
    data = response.read() # a `bytes` object
    out_file.write(data)</code>
ログイン後にコピー

圧縮ファイルの処理

サーバーがランダム アクセスをサポートしている場合、urllib.request.urlopen() を使用して圧縮ファイルを処理することもできます。

<code class="python">import urllib.request
import gzip

url = 'http://example.com/archive.gz'
with urllib.request.urlopen(url) as response:
    with gzip.GzipFile(fileobj=response) as uncompressed:
        file_header = uncompressed.read(64) # a `bytes` object</code>
ログイン後にコピー

これらのメソッドのいずれかを実装することで、開発者は Python 3 で Web からファイルを正常にダウンロードできます。 URL が文字列として保存されている場合でも。

以上がPython 3で文字列として保存されたURLからファイルをダウンロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!