【发布时间】:2020-01-31 19:31:58
【问题描述】:
我正在使用 python 3.8 中的函数来将我的想法列表存储在 idea.txt 文件中,并在文件中获取新条目更新列表之后。由于某种原因,它仅适用于第一次进入,然后变得混乱,即: [(1, '["[\'aaa\']", \'sss\']'), (2, 'ddd')]
这是我的代码:
def add_idea():
while True:
with open("ideas.txt","r") as f:
updated_list = f.readlines()
idea=input("What is your new idea?"+"\n")
idea=str(idea)
updated_list.append(idea)
"\n".join(updated_list)
f.close()
with open("ideas.txt","w") as f:
f.write(str(updated_list))
f.close()
num_list = list(enumerate(updated_list,1))
print(num_list)
我是 python 和编程新手,所以请善待;)
【问题讨论】:
-
f.write(str(updated_list))不是序列化列表对象的合理方式。不要这样做。使用预定义的序列化格式,例如json或pickle -
顺便说一句,你没想到的是什么:
[(1, '["[\'aaa\']", \'sss\']'), (2, 'ddd')]? -
您无需致电
f.close()。这就是with...块的用途。 -
语句
"\n".join(updated_list)完全没有作用 - 您从列表中生成了一个字符串,但没有存储它或以其他方式对其进行任何操作。
标签: python python-3.x list storing-data