pprint模块提供了打印任意python数据结构的方法,如果这个数据结构不是python的基本类型,则可能无法打印结果。

        pprint模块定义了一个类:
        pprint.PrettyPrinter(...)
        构造一个PrettyPrinter实例,通过stream参数设置输出流,默认为sys.stdout,其它三个可选参数用来控制输出格式,indent:缩进,默认为1;depth:控制输出的层数,如果要打印的的数据结构层数太多,超出的层数将以...输出,默认情况下,对输出层数是没有限制的;width,输出宽度,默认为80个字母。
        示例
  1. >>>import pprint
  2. >>> stuff =['spam','eggs','lumberjack','knights','ni']
  3. >>> stuff.insert(0, stuff[:])
  4. >>> pp = pprint.PrettyPrinter(indent=4)
  5. >>> pp.pprint(stuff)
  6. [['spam','eggs','lumberjack','knights','ni'],
  7. 'spam',
  8. 'eggs',
  9. 'lumberjack',
  10. 'knights',
  11. 'ni']
  12. >>> tup =('spam',('eggs',('lumberjack',('knights',('ni',('dead',
  13. ...('parrot',('fresh fruit',))))))))
  14. >>> pp = pprint.PrettyPrinter(depth=6)
  15. >>> pp.pprint(tup)
  16. ('spam',('eggs',('lumberjack',('knights',('ni',('dead',(...)))))))
        PrettyPrinter支持一下几种方法:
        pprint.pformat(object[, indent[, width[, depth]]])
        返回一个格式化的字符串
        pprint.pprint(object[, stream[, indent[, width[, depth]]]])
        在输出流中打印格式化信息,如果没有提供stream,则默认使用sys.out。
  1. >>>import pprint
  2. >>> stuff =['spam','eggs','lumberjack','knights','ni']
  3. >>> stuff.insert(0, stuff)
  4. >>> pprint.pprint(stuff)
  5. [<Recursion on list with id=...>,
  6. 'spam',
  7. 'eggs',
  8. 'lumberjack',
  9. 'knights',
  10. 'ni']
        pprint.isreadable(object)
        判断对象的表示是否'可读',如果是递归对象,则返回False
        pprint.isrecursive(object) 
        判断对象是否递归
        pprint.saferepr(object)

返回对象的字符串表示,如果是递归对象,则用 <Recursion on typename with id=number>替代递归引用。

  1. >>> pprint.saferepr(stuff)
  2. "[<Recursion on list with id=...>, 'spam', 'eggs', 'lumberjack', 'knights', 'ni']"
        1.PrettyPrinter对象
        PrettyPrinter对象有以下几种方法。
        PrettyPrinter.pformat(object)
        PrettyPrinter.pprint(object)
        PrettyPrinter.isreadable(object)
        PrettyPrinter.isrecursive(object) 
        PrettyPrinter.format(object, context, maxlevels, level) 
        返回三个参数,一个是格式化字符串,一个判断结果是否可读的标志,一个判断对象是否递归的标志。第一个参数是要格式化输出的对象,
        2.pprint示例
  1. >>>import pprint
  2. >>> tup =('spam',('eggs',('lumberjack',('knights',('ni',('dead',
  3. ...('parrot',('fresh fruit',))))))))
  4. >>> stuff =['a'*10, tup,['a'*30,'b'*30],['c'*20,'d'*20]]
  5. >>> pprint.pprint(stuff)
  6. ['aaaaaaaaaa',
  7. ('spam',
  8. ('eggs',
  9. ('lumberjack',
  10. ('knights',('ni',('dead',('parrot',('fresh fruit',)))))))),
  11. ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
  12. ['cccccccccccccccccccc','dddddddddddddddddddd']]
  13. >>> pprint.pprint(stuff, depth=3)
  14. ['aaaaaaaaaa',
  15. ('spam',('eggs',(...))),
  16. ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa','bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
  17. ['cccccccccccccccccccc','dddddddddddddddddddd']]
  18. >>> pprint.pprint(stuff, width=60)
  19. ['aaaaaaaaaa',
  20. ('spam',
  21. ('eggs',
  22. ('lumberjack',
  23. ('knights',
  24. ('ni',('dead',('parrot',('fresh fruit',)))))))),
  25. ['aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa',
  26. 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb'],
  27. ['cccccccccccccccccccc','dddddddddddddddddddd']]
 

 
 

pprint模块解析的更多相关文章

  1. TypeScript 素描 - 模块解析、声明合并

    模块解析 模块解析有两种方式 相对方式  也就是以/或 ./或-/开头的,比如import jq  from "/jq" 非相对方式  比如 import model  from ...

  2. python-pcap模块解析mac地址

    python-pcap模块解析mac地址 作者:vpoet mail:vpoet_sir@163.com import pcap import binascii a = pcap.pcap() a.s ...

  3. webpack模块解析

    前面的话 在web存在多种支持JavaScript模块化的工具(如requirejs和r.js),这些工具各有优势和限制.webpack基于从这些系统获得的经验教训,并将模块的概念应用于项目中的任何文 ...

  4. pprint模块介绍

    简介pprint模块 提供了打印出任何Python数据结构类和方法. 模块方法: 1.class pprint.PrettyPrinter(indent=1,width=80,depth=None, ...

  5. TypeScript和Node模块解析策略

    一般我们在模块化编码时,总会导入其它模块,通常我们使用如下语法: import { A } from './a'; // ES6语法 import { A } from 'a'; var A = re ...

  6. 利用Bioperl的SeqIO模块解析fastq文件

    测序数据中经常会接触到fastq格式的文件,比如说拿到fastq格式的原始数据后希望查看测序碱基的质量并去除低质量碱基.一般而言大家都是用现有的工具,比如说fastqc这个Java写的小程序,确实很好 ...

  7. python pprint模块

    pprint模块 提供了打印出任何python数据结构类和方法. 模块方法: 1.class pprint.PrettyPrinter(indent=1,width=80,depth=None, st ...

  8. optparse模块解析命令行参数的说明及优化

    一.关于解析命令行参数的方法 关于“解析命令行参数”的方法我们一般都会用到sys.argv跟optparse模块.关于sys.argv,网上有一篇非常优秀的博客已经介绍的很详细了,大家可以去这里参考: ...

  9. Python 标准库 -> Pprint 模块 -> 用于打印 Python 数据结构

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

随机推荐

  1. POJ1008

    2014-08-22 题意: (有中文版题目..)  就是两种历法的转换 思路: 把两种历法的细节了解了就很简单了 Haab历法一年365,Tzolkin一年260天 先求出总天数sumDay,然后s ...

  2. python 类型转换函数

    python提供了一些可将某个值从一种类型转换为另一种类型的内置函数. 1. int函数可以把任何可以转换为整型的值转换为整型.int可以将浮点数转换为整数,但不会做四舍五入操作,而是直接丢弃小数部分 ...

  3. oracle添加用户及权限

    CREATE USER qdcenter 用户名 IDENTIFIED BY qdcenter   密码 DEFAULT TABLESPACE data1  默认表空间 TEMPORARY TABLE ...

  4. md笔记——编程术语

    thinkPython 读书笔记 本列表根据thinkPython中记录的大量编程术语 整理而来. 该书的重点不是教会你Python,而是培养读者用计算机科学家一样的思路来思考,设计,开发. 讲解了语 ...

  5. 浅谈HtmlParser

    使用Heritrix抓取到自己所需的网页后,还需要对网页中的内容进行分类等操作,这个时候就需要用到htmlparser,但是使用htmlparser并不是那么容易!因为相关的文档比较少,很多更能需要开 ...

  6. s2sh遇到的问题

    一:ids for this class must be manually assigned before calling save() "类名.hbm.xml"映射文件中< ...

  7. 【转】linux Centos 6.5 安装桌面环境GNOME

    在某种场合之下,我们使用的Linux还是要选择安装桌面环境的,所以在这里介绍一下如何给没有安装桌面环境的系统安装桌面环境. 以Centos 6.5 为例演示一下如何安装桌面环境. 一.首先查看系统的运 ...

  8. win7使用的一些误区以及困惑

    总结了一些新人在使用win7时容易产生的误区和困惑,罗列出来说明一下,以便新人能尽快适应新的操作系统. 1.内存使用的问题:这是个大误区,很多人都用xp时代的眼光来审视win7,这是错误的,因为两者的 ...

  9. BaaS with Kinvey and Delphi 10.1 Berlin

    In this article I will show you how to connect yourdesktop and mobile applications to a mobile backe ...

  10. Android UI--ViewPager扩展Tab标签指示

    Android UI--ViewPager扩展Tab标签指示 2013年8月30日出来冒冒泡 ViewPager这个控件已经不算是陌生的了,各种玩Android的小伙伴们都有发表相应的文章来讲它.我看 ...