Python for循环只会创建一个文件

时间:2018-07-07 20:44:32

标签: python for-loop

这是我的代码。我试图遍历一堆subreddit标题,并将它们全部放在单独的带标签的文本文件中。如果您能帮助我找到一个很好的解决方案。

for entries in subreddit.top(limit=20):
    print (entries.title)
    counter = 0
    with open("file_" + str(counter) + ".txt", 'w', encoding='utf-8') as f:
        f.write(str(entries.title))
    counter += 1

    if counter == 20:
        break

1 个答案:

答案 0 :(得分:3)

因为您要在循环中设置counter = 0 ,所以要创建多次具有相同名称的文件。

因此将counter = 0 放在for循环之外。

使用enumerate的更好的方法可以产生索引和元素,您只需在循环中解包即可获得一个从0开始的非越野车计数器,正是您所需要的:

for counter,entries in enumerate(subreddit.top(limit=20)):
    print (entries.title)
    with open("file_" + str(counter) + ".txt", 'w', encoding='utf-8') as f:
        f.write(str(entries.title))