1. ホーム
  2. python

[解決済み] テキストファイルの URL が与えられたとき、その内容を読み取る最も簡単な方法は何ですか?

2022-05-31 15:03:05

質問

Pythonで、テキストファイルのURLを与えられたとき、テキストファイルのローカルコピーを保存せずに、テキストファイルの内容にアクセスし、ファイルの内容を一行ずつローカルに印刷する最も簡単な方法は何ですか?

TargetURL=http://www.myhost.com/SomeFile.txt
#read the file
#print first line
#print second line
#etc

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

<ブロッククオート

2016/09に編集しました。Python 3以降では urllib.request の代わりに、urllib2

実は一番シンプルな方法は

import urllib2  # the lib that handles the url stuff

data = urllib2.urlopen(target_url) # it's a file like object and works just like a file
for line in data: # files are iterable
    print line

Willが提案したように、"readlines"も必要ないでしょう。あなたはそれを短くすることもできます。 *

import urllib2

for line in urllib2.urlopen(target_url):
    print line

しかし、Pythonでは読みやすさが重要であることを忘れないでください。

しかし、これは最も単純な方法ですが、安全な方法ではありません。なぜなら、ネットワークプログラミングでは、ほとんどの場合、期待するデータ量が尊重されるかどうかわからないからです。そのため、一般的には、固定された妥当な量のデータを読み込む方がよいでしょう。

import urllib2

data = urllib2.urlopen("http://www.google.com").read(20000) # read only 20 000 chars
data = data.split("\n") # then split it into lines

for line in data:
    print line


* Python 3 の 2 番目の例です。

import urllib.request  # the lib that handles the url stuff

for line in urllib.request.urlopen(target_url):
    print(line.decode('utf-8')) #utf-8 or iso8859-1 or whatever the page encoding scheme is