Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.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:在文件中循环URL_Python_Loops_Rss_Feedparser - Fatal编程技术网

Python:在文件中循环URL

Python:在文件中循环URL,python,loops,rss,feedparser,Python,Loops,Rss,Feedparser,我试图循环遍历一个包含URL列表的文本文件,并让python脚本解析文件中的每个URL 代码只处理文件中的最后一行,而它应该处理每一行并将结果附加到文件中 我不知道该怎么办,谢谢你的帮助。 谢谢 也许您不应该每次都将feedparser.parse()返回的值赋给同一个变量 至少在当前缩进中,这是循环中唯一发生的事情。 statusupdate=d.entries[0]。description只运行一次,并对d的最后一个值进行操作,因为它在循环之外。也许您不应该每次都将feedparser.pa

我试图循环遍历一个包含URL列表的文本文件,并让python脚本解析文件中的每个URL

代码只处理文件中的最后一行,而它应该处理每一行并将结果附加到文件中

我不知道该怎么办,谢谢你的帮助。 谢谢


也许您不应该每次都将
feedparser.parse()
返回的值赋给同一个变量

至少在当前缩进中,这是循环中唯一发生的事情。
statusupdate=d.entries[0]。description
只运行一次,并对
d
的最后一个值进行操作,因为它在循环之外。

也许您不应该每次都将
feedparser.parse()
返回的值赋给同一个变量

for lines in urls:
    d = feedparser.parse(lines)
至少在当前缩进中,这是循环中唯一发生的事情。
statusupdate=d.entries[0]。description
只运行一次,并对
d
的最后一个值进行操作,因为它在循环之外

for lines in urls:
    d = feedparser.parse(lines)
这个循环只是继续运行,它不断地将某些东西重新分配给变量
d
。这意味着,当循环完成时,
d
将具有与最后一行关联的值

如果希望处理每一行,则需要对
d
的每个值进行处理。例如,您可以将每个
d.entries[0].description
放在一个列表中,然后迭代该列表以处理它


这个循环只是继续运行,它不断地将某些东西重新分配给变量
d
。这意味着,当循环完成时,
d
将具有与最后一行关联的值

如果希望处理每一行,则需要对
d
的每个值进行处理。例如,您可以将每个
d.entries[0].description
放在一个列表中,然后迭代该列表以处理它



你的计划中有几个问题

  • 您正在循环输入文件而不处理数据。仅在最后一行进行处理
  • 您正在循环中打开输出文件(尽管处于附加模式)

  • 我的建议是将输出文件的open语句保留在循环之外,并且所有语句都应该缩进,以使其成为循环中迭代输入文件的一部分。

    程序中存在两个问题

  • 您正在循环输入文件而不处理数据。仅在最后一行进行处理
  • 您正在循环中打开输出文件(尽管处于附加模式)

  • 我的建议是将输出文件的open语句保留在循环之外,并且您的所有语句都应该缩进,以使其成为循环中迭代输入文件的一部分。

    尝试了各种缩进方式,但仍然不起作用,我发现这很难,因为我的第一个python脚本尝试了各种缩进方式,但是仍然不起作用,我发现这很难,因为它是我的第一个python脚本。我理解你的意思,但仍然不知道如何实现它(我的第一个python脚本)。我添加了一些代码,可以让你了解如何实现它。它未经测试,但它会将中间结果放入一个列表中供以后处理。我理解您的意思,但仍然不知道如何实现它(我的第一个python脚本)。我添加了一些代码,可以让您了解如何实现它。它未经测试,但它会将中间结果放入列表中供以后处理。可能不会,我希望feedparser.parse()成为文件中URL的占位符,然后为文件中的每一行运行脚本,但您的代码不会为每一行运行,因为它在循环之外。在行上的循环中,解析提要并将结果分配给
    d
    ,覆盖以前的结果。完成后,您将处理
    d
    的最后一个值。将处理部分放在循环中以使其运行多次。可能不是,我希望feedparser.parse()成为文件中URL的占位符,然后为文件中的每一行运行脚本,但您的代码不是为每一行运行的,因为它在循环之外。在行上的循环中,解析提要并将结果分配给
    d
    ,覆盖以前的结果。完成后,您将处理
    d
    的最后一个值。将处理部件放入循环中,使其运行多次。
    urls = open("c:/a2.txt", "r") # file with rss urls
    results = []
    for lines in urls:
        results.append(feedparser.parse(lines))
    contents = []
    for r in results:
        statusupdate = r.entries[0].description
        soup = BeautifulStoneSoup(statusupdate)
        for e in r.entries:
            contents.append((e.title, e.link, soup.find("img")["src"]))
    with open(r'c:\a.txt', 'a') as f:
        for c in contents:
            f.writelines('"')
            f.writelines(c[0])
            f.writelines('"')
            f.writelines(",")
            f.writelines('"')
            f.writelines(c[1])
            f.writelines('"')
            f.writelines(",")
            f.writelines('"')
            f.writelines(c[2])
            f.writelines('"')
            f.writelines(",")
            f.writelines("\n")