我制作了一个Python脚本,它读取文本文件然后转到网址,并将文本文件中的扩展名添加到网址中。问题是脚本在读完文件之前一直停止。我无法弄清楚原因。
import urllib
f = open("extension/1.txt", 'r')
for x in f.readline():
a = f.readline()
url = "http://www.link.com/whatever/%s" % a
print url
urllib.urlretrieve(url, a)
答案 0 :(得分:6)
通过调用for x in f.readline():
,您将通过作为可迭代文件的第一行string
,然后通过第一行中的每个字符抓取一个新行a = f.readline()
。我不认为这是你的意图。
file
对象f
本身是可迭代的,因此您只需执行以下操作:
for line in f:
value = line.rstrip('\n')
url = "http://www.link.com/whatever/%s" % value
print url
urllib.urlretrieve(url, value) # Not sure why you want to send value (your a) here
答案 1 :(得分:2)
您的代码执行以下操作:
f.readline()
)中读取一行。for x in f.readline()
),请阅读其他行(a = f.readline()
)并对其进行处理。因此,它只会处理与文件第一行中的字符一样多的行,并且永远不会处理第一行。
您可能希望将该循环写为:
with open("extension/1.txt") as f:
for a in f:
a = a.strip()
url = "http://www.link.com/whatever/%s" % a
print url
urllib.urlretrieve(url, a)
答案 2 :(得分:0)
也许最初是这样阅读所有的行:
fp = open(the_file)
lines = fp.readlines()
fp.close()
for line in lines:
do something