文本文件的Python脚本 - 字符串,“[value1,value2,value3]”

时间:2016-02-25 16:22:54

标签: python list dictionary

我有一个.txt文件(输入): inputfilename.txt:

{'a':"[25, 27, 13]"
'b':"[50, 57, 41]"
'c':"[37, 33, 23]"
'd':"[40, 38, 24]"
'e':"[11, 11, 11]"
'f':"[2, 0, 2]"
'g':"[6, 4, 3]"
'h':"[79, 85, 39]}

我希望得到一个输出:

a, 25, 27, 13
b, 50, 57, 41
c, 37, 33, 23
d, 40, 38, 24
e, 11, 11, 11
f, 2, 0, 2
g, 6, 4, 3
h, 79, 85, 39

我找到了我的问题的答案,如下所示。

注意:的 我知道可以使用for循环,但有人知道更快的方法,因为我的inputfile.txt非常大 - 7000行。

2 个答案:

答案 0 :(得分:0)

在评估文件内容之前,您可以使用replace()删除括号和双引号:

temp = dic1.read()
for ch in ('[', ']', '"'):
    temp = temp.replace(ch, '')
super_dic = ast.literal_eval(temp)

答案 1 :(得分:0)

我将.txt作为字典打开,将字典中的值作为字符串,然后加入三个值,现在是字符串。然后为每个开始新的一行。完成循环。解决了这个问题!

#!/usr/bin/env python
import sys
import csv
sys.stdout=open('outputfilename.txt', 'w')
f=open('/Users/cmdb/Desktop/inputfilename.txt', 'r')

dic = eval(f.read())
with open("outputfilename.txt","wb") as g:
    for key in dic:
        g.write(",".join([key] + [ str(x) for x in dic[key] ] ) + "\n")