如何将生成器的结果写入文本文件?

时间:2019-11-08 10:22:28

标签: python-3.7

我生成了一个带for循环的str,但是我无法在for循环外显示同一内容或将结果写入文本文件

我目前正在使用phyton 3.7.4

r = open('book_list.txt','r')  
lines = r.readlines()
books = dict((line.strip().split(':') for line in lines))
r.close()

for k,v in books.items() :
    remain = str(k+':'+v)
print(remain)

不是显示所有键和值,而是显示最后一个键和值

1 个答案:

答案 0 :(得分:0)

您将在for循环的每次迭代中覆盖remain变量。这就是为什么只显示最后一个。您应该将每个新的键值对附加到字符串之后。由于您没有提供book_list.txt的内容,因此我为自己制作了一个伪造的字典来对其进行测试。

books = {
  "key1": "value1",
  "key2": "value2",
  "key3": "value3"
}

remain = ""
for k,v in books.items():
    remain = remain + str(k+':'+v) + '\n'
print(remain)

这将打印:

key3:value3
key2:value2
key1:value1

因此您的最终代码应为:

r = open('book_list.txt','r')  
lines = r.readlines()
books = dict((line.strip().split(':') for line in lines))
r.close()

remain = ""
for k,v in books.items():
    remain = remain + str(k+':'+v) + '\n'
print(remain)