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. chrome 下的 proxy 插件安装

    Install “Proxy SwitchyOmega” extensions for chrome.

  2. iOS 处理方法中的可变參数

    ## iOS 处理方法中的可变參数 近期写了一个自己定义的对话框的demo,想模仿系统的UIAlertView的实现方式.对处理可变參数的时候,遇到了小问题,于是谷歌了一下.写下了处理问题的方法.记录 ...

  3. TASKKILL命令使用方法

    TASKKILL [/S system [/U username [/P [password]]]]          { [/FI filter] [/PID processid | /IM ima ...

  4. Python 读写文件操作

    python进行文件读写的函数是open或file file_handler = open(filename,,mode) Table mode 模式 描述 r 以读方式打开文件,可读取文件信息. w ...

  5. select实现选中跳转

    select选择后直接跳转到其他网站的三种方式     第一种: ************************** <html> <head> <meta http- ...

  6. English - little,a little,a few,few的区别

    few.a few.little.a little的区别和联系: few / a few(形容词)用来修饰可数名词,few表示否定意义,没有,几乎没有, a few表示有肯定意思,有几个. 例如:a ...

  7. Method Swizzle黑魔法,修改 ios 系统类库方法 SEL IMP

    Method Swizzle黑魔法,修改 ios 系统类库方法   版权声明:本文为博主原创文章,未经博主允许不得转载. 一般来说,系统提供的方法已经足够开发了,但是有的时候有些需求用普通方法不好做. ...

  8. BZOJ 4321: queue2( dp )

    dp(i, j, 1)表示前i个, 有j对是不合法的, i和i-1是在一起的. dp(i, j, 0)表示前i个, 有j对是不合法的, i和i-1不在一起的. 转移我们只需考虑是多了一对不合法的还是少 ...

  9. js中&& 和 ||

    原文链接:http://wenrunchang123.iteye.com/blog/1749802 a() && b()     1). 如果执行a() 返回true:那么执行b()并 ...

  10. 星际SC 地图 Big Game Fort 要塞之战 修正了 BIG GAME 地图的平衡性

    星际SC 地图 Big Game Fort 要塞之战 修正了 BIG GAME 地图的平衡性 也适合BIG 1V1 对战 此版本目前不开放1打1造功能