精华内容
下载资源
问答
  • pprint

    2019-12-10 09:03:00
    pprint — 数据美化输出 源代码:https://github.com/python/cpython/tree/3.7/Lib/pprint.py 模块提供了“美化打印”任意 Python 数据结构的功能,这种美化形式可用作对解释器的输入。 如果经格式化的结构包含非...

    pprint — 数据美化输出

    源代码:https://github.com/python/cpython/tree/3.7/Lib/pprint.py
    官方帮助文档:https://docs.python.org/3.7/library/pprint.html#module-pprint

    模块提供了“美化打印”任意 Python 数据结构的功能,这种美化形式可用作对解释器的输入。 如果经格式化的结构包含非基本 Python 类型的对象,则其美化形式可能无法被加载。 包含文件、套接字或类对象,以及许多其他不能用 Python 字面值来表示的对象都有可能导致这样的结果。

    格式化后的形式会在可能的情况下以单行来表示对象,并在无法在允许宽度内容纳对象的情况下将其分为多行。 如果你需要调整宽度限制则应显式地构造 PrettyPrinter 对象。

    Dictionaries are sorted by key before the display is computed. 字典在被计算前通过键值来排序。
    pprint 模块定义了一个类:

    class pprint.PrettyPrinter(indent=1, width=80, depth=None, stream=None, *, compact=False)
    

    构造一个 PrettyPrinter 实例。 此构造器接受几个关键字形参。 使用 stream 关键字可设置输出流;在流对象上使用的唯一方法是文件协议的 write() 方法。 如果未指定此关键字,则 PrettyPrinter 会选择 sys.stdout
    每个递归层级的缩进量由 indent 指定;默认值为一。 其他值可导致输出看起来有些怪异,但可使得嵌套结构更易区分。
    可被打印的层级数量由 depth 控制;如果数据结构的层级被打印得过深,其所包含的下一层级会被替换为 …。
    在默认情况下,对被格式化对象的层级深度没有限制。 希望的输出宽度可使用 width 形参来限制;默认值为 80 个字符。 如果一个结构无法在限定宽度内被格式化,则将做到尽可能接近。
    如果 compact 为假值(默认)则长序列的每一项将被格式化为单独的行。 如果 compact 为真值,则格式化将在 width 可容纳的情况下把尽可能多的项放入每个输出行。

    在 3.4 版更改: 加入compact 参数。

     import pprint
     stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
     stuff.insert(0, stuff[:])
     pp = pprint.PrettyPrinter(indent=4)
     pp.pprint(stuff)
    [   ['spam', 'eggs', 'lumberjack', 'knights', 'ni'],
        'spam',
        'eggs',
        'lumberjack',
        'knights',
        'ni']
     pp = pprint.PrettyPrinter(width=41, compact=True)
     pp.pprint(stuff)
    [['spam', 'eggs', 'lumberjack',
      'knights', 'ni'],
     'spam', 'eggs', 'lumberjack', 'knights',
     'ni']
     tup = ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead',
    ... ('parrot', ('fresh fruit',))))))))
    pp = pprint.PrettyPrinter(depth=6)
     pp.pprint(tup)
    ('spam', ('eggs', ('lumberjack', ('knights', ('ni', ('dead', (...)))))))
    

    pprint 模块还提供了一些快捷函数:
    pprint.pformat(object, indent=1, width=80, depth=None, *, compact=False)
    object 格式化表示作为字符串返回。
    indent, width, depthcompact 将作为格式化形参被传入 PrettyPrinter 构造器。

    在 3.4 版更改: 加入compact 参数。

    pprint.pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False)
    stream 上打印 object 的格式化表示,并附带一个换行符。
    如果 streamNone,则使用 sys.stdout。 这可以替换 print() 函数在交互式解释器中使用以查看值(你甚至可以执行重新赋值 print = pprint.pprint 以在特定作用域中使用)。
    indent, width, depth 和 compact 将作为格式化形参被传给 PrettyPrinter 构造器。

    在 3.4 版更改: 加入compact 参数。

     import pprint
     stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni']
     stuff.insert(0, stuff)
     pprint.pprint(stuff)
    [<Recursion on list with id=...>,
     'spam',
     'eggs',
     'lumberjack',
     'knights',
     'ni']
    

    pprint.isreadable(object)
    确定 object 的格式化表示是否“可读”,或是否可被用来通过 eval() 重新构建对象的值。 此函数对于递归对象总是返回 False

    pprint.isreadable(stuff)
    False
    

    pprint.isrecursive(object)
    确定 object 是否需要递归表示。

    此外还定义了一个支持函数:

    pprint.saferepr(object)
    返回 object 的字符串表示,并为递归数据结构提供保护。 如果 object 的表示形式公开了一个递归条目,该递归引用会被表示为 <Recursion on typename with id=number>。 该表示因而不会进行其它格式化。

    pprint.saferepr(stuff)
    "[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"
    

    PrettyPrinter 对象

    PrettyPrinter 的实例具有下列方法:

    PrettyPrinter.pformat(object)
    返回 object 格式化表示。 这会将传给 PrettyPrinter 构造器的选项纳入考虑。

    PrettyPrinter.pprint(object)
    在所配置的流上打印 object 的格式化表示,并附加一个换行符。

    下列方法提供了与同名函数相对应的实现。 在实例上使用这些方法效率会更高一些,因为不需要创建新的 PrettyPrinter 对象。

    PrettyPrinter.isreadable(object)
    确定对象的格式化表示是否“可读”,或者是否可使用 eval() 重建对象值。 请注意此方法对于递归对象将返回 False。 如果设置了 PrettyPrinter 的 depth 形参并且对象深度超出允许范围,此方法将返回 False。

    PrettyPrinter.isrecursive(object)
    确定对象是否需要递归表示。

    此方法作为一个钩子提供,允许子类修改将对象转换为字符串的方式。 默认实现使用 saferepr() 实现的内部方式。

    PrettyPrinter.format(object, context, maxlevels, level)
    返回三个值:字符串形式的 object 已格式化版本,指明结果是否可读的旗标,以及指明是否检测到递归的旗标。
    第一个参数是要表示的对象。
    第二个是以对象 id() 为键的字典,这些对象是当前表示上下文的一部分(影响 object 表示的直接和间接容器);如果需要呈现一个已经在 context 中表示的对象,则第三个返回值应当为 True。 对 format() 方法的递归调用应当将容器的附加条目添加到此字典中。
    第三个参数 maxlevels 给出了对递归的请求限制;如果没有请求限制则其值将为 0。 此参数应当不加修改地传给递归调用。
    第四个参数 level 给出于当前层级;传给递归调用的参数值应当小于当前调用的值。

    示例
    为了演示 pprint() 函数及其形参的几种用法,让我们从 PyPI 获取关于某个项目的信息:

    import json
    import pprint
    from urllib.request import urlopen
    with urlopen('https://pypi.org/pypi/sampleproject/json') as resp:
         project_info = json.load(resp)['info']
    

    pprint() 以其基本形式显示了整个对象:

    pprint.pprint(project_info)
    {'author': 'The Python Packaging Authority',
     'author_email': 'pypa-dev@googlegroups.com',
     'bugtrack_url': None,
     'classifiers': ['Development Status :: 3 - Alpha',
                     'Intended Audience :: Developers',
                     'License :: OSI Approved :: MIT License',
                     'Programming Language :: Python :: 2',
                     'Programming Language :: Python :: 2.6',
                     'Programming Language :: Python :: 2.7',
                     'Programming Language :: Python :: 3',
                     'Programming Language :: Python :: 3.2',
                     'Programming Language :: Python :: 3.3',
                     'Programming Language :: Python :: 3.4',
                     'Topic :: Software Development :: Build Tools'],
     'description': 'A sample Python project\n'
                    '=======================\n'
                    '\n'
                    'This is the description file for the project.\n'
                    '\n'
                    'The file should use UTF-8 encoding and be written using '
                    'ReStructured Text. It\n'
                    'will be used to generate the project webpage on PyPI, and '
                    'should be written for\n'
                    'that purpose.\n'
                    '\n'
                    'Typical contents for this file would include an overview of '
                    'the project, basic\n'
                    'usage examples, etc. Generally, including the project '
                    'changelog in here is not\n'
                    'a good idea, although a simple "What\'s New" section for the '
                    'most recent version\n'
                    'may be appropriate.',
     'description_content_type': None,
     'docs_url': None,
     'download_url': 'UNKNOWN',
     'downloads': {'last_day': -1, 'last_month': -1, 'last_week': -1},
     'home_page': 'https://github.com/pypa/sampleproject',
     'keywords': 'sample setuptools development',
     'license': 'MIT',
     'maintainer': None,
     'maintainer_email': None,
     'name': 'sampleproject',
     'package_url': 'https://pypi.org/project/sampleproject/',
     'platform': 'UNKNOWN',
     'project_url': 'https://pypi.org/project/sampleproject/',
     'project_urls': {'Download': 'UNKNOWN',
                      'Homepage': 'https://github.com/pypa/sampleproject'},
     'release_url': 'https://pypi.org/project/sampleproject/1.2.0/',
     'requires_dist': None,
     'requires_python': None,
     'summary': 'A sample Python project',
     'version': '1.2.0'}
    

    结果可以被限制到特定的 depth (更深层的内容将使用省略号):

    pprint.pprint(project_info, depth=1)
    {'author': 'The Python Packaging Authority',
     'author_email': 'pypa-dev@googlegroups.com',
     'bugtrack_url': None,
     'classifiers': [...],
     'description': 'A sample Python project\n'
                    '=======================\n'
                    '\n'
                    'This is the description file for the project.\n'
                    '\n'
                    'The file should use UTF-8 encoding and be written using '
                    'ReStructured Text. It\n'
                    'will be used to generate the project webpage on PyPI, and '
                    'should be written for\n'
                    'that purpose.\n'
                    '\n'
                    'Typical contents for this file would include an overview of '
                    'the project, basic\n'
                    'usage examples, etc. Generally, including the project '
                    'changelog in here is not\n'
                    'a good idea, although a simple "What\'s New" section for the '
                    'most recent version\n'
                    'may be appropriate.',
     'description_content_type': None,
     'docs_url': None,
     'download_url': 'UNKNOWN',
     'downloads': {...},
     'home_page': 'https://github.com/pypa/sampleproject',
     'keywords': 'sample setuptools development',
     'license': 'MIT',
     'maintainer': None,
     'maintainer_email': None,
     'name': 'sampleproject',
     'package_url': 'https://pypi.org/project/sampleproject/',
     'platform': 'UNKNOWN',
     'project_url': 'https://pypi.org/project/sampleproject/',
     'project_urls': {...},
     'release_url': 'https://pypi.org/project/sampleproject/1.2.0/',
     'requires_dist': None,
     'requires_python': None,
     'summary': 'A sample Python project',
     'version': '1.2.0'}
    
    展开全文
  • pprint-开源

    2021-08-06 18:36:24
    pprint - 交叉引用 C/C++/Verilog 源代码的 postscript 漂亮打印机
  • 开发已转移到 。 cljs-pprint clojure.pprint 到 clojurescript 的端口 Clojars: [bostonou/cljs-pprint "0.0.4-SNAPSHOT"] 非常原始,但适用于列表、矢量和地图。... [cljs.contrib.pprint :refer [pprint]]
  • 主要介绍了python pprint模块中print()和pprint()两者的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • python pprint

    2019-02-26 17:16:00
    使用 pprint 模块 pprint 模块( pretty printer ) 用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读). import json from pprint import pprint ...

    使用 pprint 模块

    pprint 模块( pretty printer )

    用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读).

     

    import json
    from pprint import pprint
    with open(r'C:\Temp\aa.json','r') as f:
        loadfile=json.load(f)
        pprint(loadfile)
        print(loadfile)
    
    
    
    
    out
    =========================== RESTART: C:/Temp/t1.py ===========================
    {'ChannelBusinessHours': {'d': {'e': 'ee'}, 'r': 'fddfdfdf'},
    'name': 'AWQA',
    'price': 542.33,
    'shares': 100}
    {'price': 542.33, 'shares': 100, 'name': 'AWQA', 'ChannelBusinessHours': {'r': 'fddfdfdf', 'd': {'e': 'ee'}}}
    >>>
    

     

     

     

    转载于:https://www.cnblogs.com/baxianhua/p/10438686.html

    展开全文
  • pprint用法

    2018-11-09 11:37:00
    pprint模块 提供了打印出任何python数据结构类和方法。 模块方法: class pprint.PrettyPrinter(indent=1,width=80,depth=None, stream=None) 创建一个PrettyPrinter对象 indent --- 缩进,width --- 一...

    pprint模块 提供了打印出任何python数据结构类和方法。

    模块方法:

    class pprint.PrettyPrinter(indent=1,width=80,depth=None, stream=None)  

       创建一个PrettyPrinter对象

        indent --- 缩进,width --- 一行最大宽度,

        depth --- 打印的深度,这个主要是针对一些可递归的对象,如果超出指定depth,其余的用"..."代替。

                     eg: a=[1,2,[3,4,],5]  a的深度就是2; b=[1,2,[3,4,[5,6]],7,8] b的深度就是3

        stream ---指输出流对象,如果stream=None,那么输出流对象默认是sys.stdout

     

    pprint.pformat(object,indent=1,width=80, depth=None) 

       返回格式化的对象字符串

     

    pprint.pprint(object,stream=None,indent=1, width=80, depth=None) 

      输出格式的对象字符串到指定的stream,最后以换行符结束。

     

    pprint.isreadable(object) 

       判断对象object的字符串对象是否可读

     

    pprint.isrecursive(object) 

       判断对象是否需要递归的表示

       eg: pprint.isrecursive(a)  --->False

            pprint.isrecursive([1,2,3])-->True

     

    pprint.saferepr(object) 

       返回一个对象字符串,对象中的子对象如果是可递归的,都被替换成<Recursionontypename withid=number>.这种形式。

     

    PrettyPrinter 对象具有的方法与上面类似,不在赘述。

    import pprint
    
    data = (
    "this is a string", [1, 2, 3, 4], ("more tuples",
    1.0, 2.3, 4.5), "this is yet another string"
    )
    
    pprint.pprint(data)
    
    输出:
    
    ('this is a string',
    [1, 2, 3, 4],
    ('more tuples', 1.0, 2.3, 4.5),
    'this is yet another string')

     

    转载于:https://www.cnblogs.com/liusouthern/p/9934193.html

    展开全文
  • 要用pprint.pprint() 转载于:https://www.cnblogs.com/vivivi/p/7183320.html

     

    要用pprint.pprint()

     

    转载于:https://www.cnblogs.com/vivivi/p/7183320.html

    展开全文
  • pprint的英文全称Data pretty printer,顾名思义就是让显示结果更漂亮。print()和pprint()都是python的打印模块,功能基本一样,唯一的区别就是pprint()模块打印出来的数据结构更加完整,每行为一个数据结构,更加...
  • cljs-pprint 注意:已成功合并到版本0.0-3255的ClojureScript中。 CLJS需要一个漂亮的打印机-Clojure有两个可用的漂亮打印机,它们正在移植到ClojureScript中: (综合打印机)在这里移植到cljs,这是所需的 ...
  • pprint模块

    2018-05-28 20:06:43
    pprint 模块( pretty printer ) 用于打印 Python 数据结构. 当你在命令行下打印特定数据结构时你会发现它很有用(输出格式比较整齐, 便于阅读). import pprint data = ( &quot;this is a string&...
  • Python中的pprint.pdf

    2021-08-10 16:40:06
    Python中的pprint.pdf
  • python中pprint pprint (pprint) pprint is a python module that helps us to make the readability of the complex data structures easy. The pprint is also called as "pretty print". pprint是一个python模块...
  • Python pprint模块

    2021-08-19 11:08:52
    pprint模块可以漂亮地打印列表和字典。 目录PrettyPrinter()对象pformat()方法pprint()方法isreadable()方法isrecursive()方法format()方法pprint()pformat()pp()isreadable()isrecursive()saferepr() PrettyPrinter...
  • Python中的pprint折腾记

    2020-12-24 15:01:21
    看到这里提到了pprint。  打算去试试. 2.pprint简介 找到在线官网解释: pprint — Data pretty printer  就是一个,方便大家打印一些,相对复杂的变量的好东西。 3.使用pprint 去写点代码试试。 代码: 复制代码...
  • pprint的用法

    万次阅读 2018-01-18 11:58:57
    pprint模块能以解释器可以解析的输入形式漂亮地打印python数据结构的形式 import pprint stuff = ['spam', 'eggs', 'lumberjack', 'knights', 'ni'] stuff.insert(0, stuff[:]) #class pprint.PrettyPrinter(indent...
  • 展开全部pprint函数时pprint模块下方法,是一种标准、格式化输出方式。pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False);print(value, ..., sep=' ', end='\n', file=sys.stdout, ...
  • python pprint模块

    千次阅读 2016-08-09 12:05:00
    python pprint模块
  • Python 美化输出pprint

    2021-04-25 23:03:57
    使用pprint库中的pprint可以对数据进行美化输出,使数据保留格式,看上去更直观。 使用方法如下: import pprint d = pprint.pprint(d)
  • pprint的使用

    2020-12-01 23:48:41
    title: pprint的使用 date: 2020-12-01 22:15:45 tags: Python的使用   pprint是"pretty printer"的缩写,主要是用于替代print()打印复杂的数据结构对象,并且从英文全称就可以很明白地知道了这个库函数...
  • 1.背景看到这里提到了pprint。打算去试试.2.pprint简介找到在线官网解释:就是一个,方便大家打印一些,相对复杂的变量的好东西。3.使用pprint去写点代码试试。代码:#--------------------------------------------...
  • 背景看到这里提到了pprint。打算去试试.pprint简介找到在线官网解释:就是一个,方便大家打印一些,相对复杂的变量的好东西。使用pprint去写点代码试试。代码:#--------------------------------------------------...
  • pprint模块介绍

    2019-09-30 16:57:49
    简介pprint模块 提供了打印出任何Python数据结构类和方法。 模块方法: 1.class pprint.PrettyPrinter(indent=1,width=80,depth=None, stream=None) 创建一个PrettyPrinter对象 indent --- 缩进,width --- 一行...
  • pprint和print区别

    万次阅读 2017-07-06 10:08:43
    pprint函数时pprint模块下方法,是一种标准、格式化输出方式。 pprint(object, stream=None, indent=1, width=80, depth=None, *, compact=False) In [1]: from sklearn.datasets import fetch_20newsgroups ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 11,134
精华内容 4,453
关键字:

pprint