读取存储在文本文件中的元组

时间:2011-11-02 16:38:41

标签: python list tuples text-files

我一直在寻找一种在运行时之后永久存储由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(),但从来没有只是我文件中第二项的简单输出......我希望有人可以帮助我吗?

提前多多感谢!

2 个答案:

答案 0 :(得分:5)

考虑使用pickle.dumppickle.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按原样保存变量。