Python:在文件中循环URL
我试图循环遍历一个包含URL列表的文本文件,并让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
也许您不应该每次都将
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")