在Python中,當給定文本文件的URL時,如何從文本文件中訪問內容並逐行將本地文件內容逐行輸出而不保存文本文件的本地副本的最簡單方法是什麼?在Python中,給定一個文本文件的URL,讀取文本文件內容的最簡單方法是什麼?
TargetURL=http://www.myhost.com/SomeFile.txt
#read the file
#print first line
#print second line
#etc
在Python中,當給定文本文件的URL時,如何從文本文件中訪問內容並逐行將本地文件內容逐行輸出而不保存文本文件的本地副本的最簡單方法是什麼?在Python中,給定一個文本文件的URL,讀取文本文件內容的最簡單方法是什麼?
TargetURL=http://www.myhost.com/SomeFile.txt
#read the file
#print first line
#print second line
#etc
其實最簡單的方法是:
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
你甚至都不需要 「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
Edit 09/2016: In python 3 and up use urllib.request instead of urllib2
import urllib2
f = urllib2.urlopen(target_url)
for l in f.readlines():
print l
import urllib2
for line in urllib2.urlopen("http://www.myhost.com/SomeFile.txt"):
print line
真的沒有必要逐行閱讀。你可以得到整個事情是這樣的:
import urllib
txt = urllib.urlopen(target_url).read()
它不起作用:_AttributeError:模塊'urllib'沒有屬性'urlopen'_ – 2018-02-16 09:06:44
我是一個新手到Python和副手評論有關的Python中接受的解決方案3撲朔迷離。對於後人,代碼在Python 3做,這是
import urllib.request
data = urllib.request.urlopen(target_url)
for line in data:
...
或可替代
from urllib.request import urlopen
data = urlopen(target_url)
注意,只是import urllib
不起作用。
+1,但請注意,這是最簡單的方法,而不是安全。如果在服務器端發生任何錯誤並且永遠存在這一個傳遞內容,那麼最終可能會出現無限循環。 – 2009-09-08 11:03:42