Python 为什么我的代码一直停止?
我制作了一个Python脚本,它读取一个文本文件,然后转到一个url,并将文本文件中的扩展名添加到url中。问题是脚本在读取文件之前一直停止。我不明白为什么Python 为什么我的代码一直停止?,python,python-2.7,urllib,Python,Python 2.7,Urllib,我制作了一个Python脚本,它读取一个文本文件,然后转到一个url,并将文本文件中的扩展名添加到url中。问题是脚本在读取文件之前一直停止。我不明白为什么 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.ur
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)
通过在f.readline:中调用x,您将把文件第一行的字符串作为iterable进行遍历,然后通过a=f.readline为第一行中的每个字符获取新行。我不认为这是你的意图
文件对象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
通过在f.readline:中调用x,您将把文件第一行的字符串作为iterable进行遍历,然后通过a=f.readline为第一行中的每个字符获取新行。我不认为这是你的意图
文件对象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
也许一开始读所有的句子都是这样的:
fp = open(the_file)
lines = fp.readlines()
fp.close()
for line in lines:
do something
也许一开始读所有的句子都是这样的:
fp = open(the_file)
lines = fp.readlines()
fp.close()
for line in lines:
do something
您的代码执行以下操作:
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
从文件f.readline中读取一行。
对于f.readline中x的该行中的每个字符,读取另一行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)
您的代码执行以下操作:
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
从文件f.readline中读取一行。
对于f.readline中x的该行中的每个字符,读取另一行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)
当它停止的时候就完成了。也许你可以重述一下你的问题?有多远?它停在哪一个url/文件行上?脚本正在退出,还是只是挂在某个特定点上?它在停止时完成。也许你可以重述一下你的问题?有多远?它停在哪个url/文件行上?脚本正在退出,还是只是挂在某个特定点上?我正在下载的文件是swf文件,这就是我希望如此的原因。同意。在每次迭代中,一行被读入x,然后一行被读入a。实际上,在每次迭代中读取两行,只使用第二行。为了澄清@Max00355,我们并不完全同意@GrantVS。正如我提到的,它实际上并不是每次迭代都读取2行,而是将第一行读取到x中,然后为x的每个字符读取一行。我下载的文件是swf文件,这就是我希望如此的原因。同意。在每次迭代中,一行被读入x,然后一行被读入a。实际上,在每次迭代中读取两行,只使用第二行。为了澄清@Max00355,我们并不完全同意@GrantVS。正如我所提到的,它实际上并不是为迭代的每个循环读取2行,而是将第一行读入x,然后为x的每个字符读取一行。