我有一个.txt文件(输入):输入文件名.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 循环,但有谁知道更快的方法,因为我的输入文件.txt非常大 - 7000 行。
在评估文件内容之前,可以使用replace()
删除括号和双引号:
temp = dic1.read()
for ch in ('[', ']', '"'):
temp = temp.replace(ch, '')
super_dic = ast.literal_eval(temp)
我打开了字典.txt,将字典中的值设置为字符串,然后连接三个值,现在是字符串。然后为每个开始一个新行。完成 for 循环。修复了问题!
#!/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")