1

我制作了一个 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) 
4

3 回答 3

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
于 2012-05-02T23:59:41.083 回答
2

您的代码执行以下操作:

  1. 从文件中读取一行 ( f.readline())。
  2. 对于该行 ( 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) 
于 2012-05-03T00:13:14.340 回答
0

也许一开始阅读所有的行是这样的:

fp = open(the_file)
lines = fp.readlines()
fp.close()

for line in lines:
    do something
于 2012-05-03T00:03:48.773 回答