我一直在寻找一种在运行时之后永久存储由python程序创建的元组的方法。所以我只是简单地决定将这些数据写入文本文件(或者是否有一些更优雅但简单的推荐解决方案?)
所以这样做的命令如下:
import codecs
txt = codecs.open("data.txt", "w", encoding="utf-8")
.
.
.
data = set1, set2, set3
print >> txt, data
导致文本文件看起来像
(u'name1', 'file1', 'date1')
(u'name2', 'file2', 'date2')
.
.
.
访问data.txt的正确方法是什么,只显示所有第二个数据集,例如'file1','file2'等?
我搞乱了for循环,read()和readline(),但从来没有只是我文件中第二项的简单输出......我希望有人可以帮助我吗?
提前多多感谢!
答案 0 :(得分:5)
考虑使用pickle.dump和pickle.load为您完成所有工作。如果您不介意文件采用Python特定格式,那么这是一个合理的选择。
还要考虑使用sqlite3来存储数据。此格式可由其他程序读取,并且是可查询的(即,您只能检索 filename 字段而不是整个记录)。
否则,读取直接文本转储的传统解决方案是逐行读取文件,解析或评估文本以将其转换回Python对象,然后提取感兴趣的字段:
for line in codecs.open("data.txt", "r", encoding="utf-8"):
tup = ast.literal_eval(line)
print tup[1]
答案 1 :(得分:3)
考虑使用pickle按原样保存变量。