首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一行行地把字典写到纺织品上

一行行地把字典写到纺织品上
EN

Stack Overflow用户
提问于 2019-01-06 19:08:17
回答 3查看 162关注 0票数 0

我有一些代码可以创建字典并将其粘贴到文本文件中。但它把字典贴成一行。下面我有代码和它创建的文本文件。

代码语言:javascript
复制
print('Writing to Optimal_System.txt in %s\n' %(os.getcwd()))    
f = open('Optimal_System.txt','w')
f.write(str(optimal_system))
f.close  

有什么办法让文本文件给每个键值对它自己的行这样吗?

代码语言:javascript
复制
{'Optimal Temperature (K)': 425
 'Optimal Pressure (kPa)': 100
 ...
}

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-01-06 19:36:17

使用格式化字符串并假设optimal_system是您的字典:

代码语言:javascript
复制
with open('output.txt', 'w') as f:
    for k in optimal_system.keys():
        f.write("{}: {}\n".format(k, optimal_system[k]))

编辑

正如@wwii所指出的,上面的代码也可以写成:

代码语言:javascript
复制
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)

票数 2
EN

Stack Overflow用户

发布于 2019-01-06 19:53:44

您可以使用模块 --它也适用于所有其他数据结构。若要强制新行上的每个条目,请将width参数设置为低值。stream参数允许直接写入文件。

代码语言:javascript
复制
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)

将产生:

代码语言:javascript
复制
{'Optimal Pressure (kPa)': 100,
 'Optimal Temperature (K)': 425,
 'other stuff': [1,
                 2,
                 Ellipsis]}
票数 2
EN

Stack Overflow用户

发布于 2019-01-06 19:23:19

您可以使用json.dumps()对缩进参数执行此操作。例如:

代码语言:javascript
复制
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))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54064931

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档