Python:循环对一个项目执行相同的操作n次,而不是对n项执行一次

时间:2011-08-18 14:34:05

标签: python loops while-loop

以下是示例: 我试图抓取一系列XML页面,然后从中提取数据。

它下载每个单独的页面,因为while循环是设计用的,但是tester()函数从它下载的第一个文件打印数据V次,尽管它在每次循环后下载和清除文件。

这是在扼杀我,我做错了什么?

def tester():
    with open('raw.txt') as myFile:
        test = linecache.getline('raw.txt', 12)
        print test
        test = ""
        myFile.close

def grab_data(Year, rcvote):
    link = "XXX/%s/roll%s.xml" % (Year, rc)
    site = urllib2.urlopen(link)
    localFile = open('raw.txt', 'w')
    localFile.write(site.read(100000))
    localFile.close()
    tester()


while (V !=0):
    rc = str(V)
    if (len(rc) == 2):
        rc = "0%s" % (rc)
    elif (len(rc) == 1):
        rc = "00%s" % (rc)
    else:
        rc = rc
    grab_data(Year, rc)
    V = V - 1

1 个答案:

答案 0 :(得分:3)

问题是linecache模块。它假定同名文件是相同的。

但是为什么要将数据写入文件只是为了再次读取它?

def tester(text):
    line12 = text.splitlines()[11]
    print line12

def grab_data(year, rcvote):
    link = "XXX/%s/roll%03d.xml" % (year, rcvote)
    site = urllib2.urlopen(link)
    tester(site.read(100000))

while v:
    grab_data(year, rc)
    v -= 1