我有一些代码可以创建字典并将其粘贴到文本文件中。但它把字典贴成一行。下面我有代码和它创建的文本文件。
print('Writing to Optimal_System.txt in %s\n' %(os.getcwd()))
f = open('Optimal_System.txt','w')
f.write(str(optimal_system))
f.close 有什么办法让文本文件给每个键值对它自己的行这样吗?
{'Optimal Temperature (K)': 425
'Optimal Pressure (kPa)': 100
...
}

发布于 2019-01-06 19:36:17
使用格式化字符串并假设optimal_system是您的字典:
with open('output.txt', 'w') as f:
for k in optimal_system.keys():
f.write("{}: {}\n".format(k, optimal_system[k]))编辑
正如@wwii所指出的,上面的代码也可以写成:
with open('output.txt', 'w') as f:
for k, v in optimal_system.items():
f.write("{}: {}\n".format(k, v))并且可以使用格式化字符串文字对字符串进行格式化,这是因为python3.6可以使用,因此可以使用f'{k}: {v}\n'而不是"{}: {}\n".format(k, v)。
发布于 2019-01-06 19:53:44
您可以使用模块 --它也适用于所有其他数据结构。若要强制新行上的每个条目,请将width参数设置为低值。stream参数允许直接写入文件。
import pprint
mydata = {'Optimal Temperature (K)': 425,
'Optimal Pressure (kPa)': 100,
'other stuff': [1, 2, ...]}
with open('output.txt', 'w') as f:
pprint.pprint(mydata, stream=f, width=1)将产生:
{'Optimal Pressure (kPa)': 100,
'Optimal Temperature (K)': 425,
'other stuff': [1,
2,
Ellipsis]}发布于 2019-01-06 19:23:19
您可以使用json.dumps()对缩进参数执行此操作。例如:
import json
dictionary_variable = {'employee_01': {'fname': 'John', 'lname': 'Doe'},
'employee_02': {'fname': 'Jane', 'lname': 'Doe'}}
with open('output.txt', 'w') as f:
f.write(json.dumps(dictionary_variable, indent=4))https://stackoverflow.com/questions/54064931
复制相似问题