我有一个.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行。
答案 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")