我有一个文本文件,其中每一行代表序列挖掘操作的结果。因此,每个元组中的第一个元素是字符串(字母)的元组,第二个元素是频率(整数)。
如何将这些内容从文本文件读回原始格式?格式如下,可以直接从文本文件中复制。...似乎找不到类似的示例,但是必须有一种轻松实现此目的的方法。
(('a',), 30838057)
(('a', 'b'), 23151399)
(('a', 'b', 'c'), 13865674)
(('a', 'b', 'c', 'e'), 8979035)
(('a', 'b', 'c', 'e', 'f'), 6771982)
(('a', 'b', 'c', 'e', 'f', 'g'), 4514076)
(('a', 'b', 'c', 'e', 'f', 'g', 'h'), 2403374)
答案 0 :(得分:1)
正如其他人所评论的,您可以使用ast.literal_eval()
函数,因为您的数据似乎采用与Python文字相同的格式:
import ast
from pprint import pprint
filename = 'tuples_list.txt'
tuple_list = []
with open(filename) as inp:
for line in inp:
values = ast.literal_eval(line)
tuple_list.append(values)
pprint(tuple_list)
输出:
[(('a',), 30838057),
(('a', 'b'), 23151399),
(('a', 'b', 'c'), 13865674),
(('a', 'b', 'c', 'e'), 8979035),
(('a', 'b', 'c', 'e', 'f'), 6771982),
(('a', 'b', 'c', 'e', 'f', 'g'), 4514076),
(('a', 'b', 'c', 'e', 'f', 'g', 'h'), 2403374)]