37

我正在使用这个要点的树,现在我正在尝试弄清楚如何将漂亮打印到文件中。有小费吗?

4

4 回答 4

77

您需要的是 Pretty Printpprint模块:

from pprint import pprint

# Build the tree somehow

with open('output.txt', 'wt') as out:
    pprint(myTree, stream=out)
于 2013-06-24T16:41:11.373 回答
8

另一个通用的替代方法是 Pretty Print 的pformat()方法,它创建一个漂亮的字符串。然后,您可以将其发送到文件中。例如:

import pprint
data = dict(a=1, b=2)
output_s = pprint.pformat(data)
#          ^^^^^^^^^^^^^^^
with open('output.txt', 'w') as file:
    file.write(output_s)
于 2019-12-05T08:48:47.137 回答
0

如果我理解正确,您只需将文件提供给pprintstream上的关键字:

from pprint import pprint

with open(outputfilename, 'w') as fout:
    pprint(tree, stream=fout, **other_kwargs)
于 2013-06-24T16:41:19.430 回答
0
import pprint
outf = open("./file_out.txt", "w")
PP = pprint.PrettyPrinter(indent=4,stream=outf)
d = {'a':1, 'b':2}
PP.pprint(d)
outf.close()

如果没有 Python 3.9 中的这种语法,则无法在接受的答案中获取 stream=。因此有了新的答案。您也可以改进使用with语法来改进这一点。

import pprint
d = {'a':1, 'b':2}
with open('./test2.txt', 'w+') as out:
    PP = pprint.PrettyPrinter(indent=4,stream=out)
    PP.pprint(d)
于 2021-05-16T20:22:51.750 回答