Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么我的代码一直停止?_Python_Python 2.7_Urllib - Fatal编程技术网

Python 为什么我的代码一直停止?

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

我制作了一个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.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的每个字符读取一行。