在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
你甚至可以缩短它
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