Python3内置模块pprint让打印比print更美观详解

作者:若数 时间:2022-02-04 01:55:28 

概述

在我们使用内置打印函数print时,打印出的Python数据结构对象总是一行的输出的方式,这样对数据结构较复杂或数据较多的对象的显示并不美观,这时我们可以利用pprint输出美化数据结构对象。

pprint方法概览

美化输出

我们可以利用pprint中的PrettyPrinter控制输出的打印时的缩进,行宽、甚至打印深度等,定义类如下
class pprint.PrettyPrinter(indent = 1,width = 80,depth = None,stream = None,*,compact = False )

  • indent 缩进

  • width 宽度

  • depth 打印深度

  • stream 指输出流对象,stream = None输出流对象默认是sys.stdout

  • compact 如果compact为false(默认值),则长序列中的每个项目将在单独的行上进行格式化。如果compact为true,则将在每个输出行上格式化适合宽度的项目。


import pprint

L = [str(i)*20 for i in range(10)]
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(L)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

对象字符串

我们也可以将目标对象的格式化表示形式返回为字符串。 indent, width,depth和compact将PrettyPrinter 作为格式化参数传递给构造函数,定义类如下


L = [str(i)*20 for i in range(10)]
pp = pprint.pformat(L, indent=4)
print(pp)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

格式化打印

输出格式的对象字符串到指定的输出流,最后以换行符结束,定义类如下


import pprint

L = [str(i)*20 for i in range(10)]
pprint.pprint(L, indent=4)
print(L)

示例结果:

[   '00000000000000000000',
    '11111111111111111111',
    '22222222222222222222',
    '33333333333333333333',
    '44444444444444444444',
    '55555555555555555555',
    '66666666666666666666',
    '77777777777777777777',
    '88888888888888888888',
    '99999999999999999999']
['00000000000000000000', '11111111111111111111', '22222222222222222222', '33333333333333333333', '44444444444444444444', '55555555555555555555', '66666666666666666666', '77777777777777777777', '88888888888888888888', '99999999999999999999']

可读性

判断对象object的字符串对象是否可读,True可读,反之则反。


import pprint

L = [str(i)*20 for i in range(10)]
B = pprint.isreadable(L)
print(B)

示例结果:

True

来源:https://juejin.im/post/5cee8ebb518825332550ce0a

标签:python3,pprint,打印
0
投稿

猜你喜欢

  • 如何用Python进行时间序列分解和预测

    2022-06-20 14:39:42
  • 微信小程序应用号开发教程详解

    2022-07-05 00:34:50
  • Ubuntu中MySQL的参数文件my.cnf示例详析

    2024-01-13 02:26:28
  • Python2.5/2.6实用教程 入门基础篇

    2021-12-22 20:25:58
  • SqlServer Mysql数据库修改自增列的值及相应问题的解决方案

    2024-01-14 13:32:46
  • Jquery 切换不同图片示例代码

    2024-04-16 09:31:33
  • SQLserver 数据库危险存储过程删除与恢复方法

    2011-09-30 11:33:54
  • Python+Pillow+Pytesseract实现验证码识别

    2023-07-19 14:50:44
  • Python中三元表达式的几种写法介绍

    2022-01-24 20:10:10
  • 用Python实现将一张图片分成9宫格的示例

    2022-08-12 12:26:27
  • Python实现PIL图像处理库绘制国际象棋棋盘

    2021-06-20 14:18:08
  • ThinkPHP框架下微信支付功能总结踩坑笔记

    2024-05-02 17:13:41
  • ie6 img onload

    2009-04-08 17:23:00
  • Python实现孤立随机森林算法的示例代码

    2021-11-25 14:38:24
  • JavaScript 实现的 zip 压缩和解压缩工具包Zip.js使用详解

    2024-04-22 22:13:35
  • Python 面向切面编程 AOP 及装饰器

    2021-05-07 14:16:36
  • windows下Mysql多实例部署的操作方法

    2024-01-19 16:33:11
  • Vue基础学习之项目整合及优化

    2024-05-21 10:28:49
  • MacOS下本地golang环境搭建详细教程

    2024-04-26 17:24:53
  • 如何查看连接MYSQL数据库的IP信息

    2024-01-16 17:26:51
  • asp之家 网络编程 m.aspxhome.com