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. Ubuntu 13.04 小米2S连接Eclipse真机调试

    最近想继续将自己以前的一些Android程序代码进行改进和优化,遂将以前的代码在windows下导入eclipse工程,谁知导入后便eclipse假死,甚至windows资源管理器也动弹不得,诡异的是 ...

  2. Objective-C中的@dynamic

    一.@dynamic与@synthesize的区别 @property有两个对应的词,一个是@synthesize,一个是@dynamic.如果@synthesize和@dynamic都没写,那么默认 ...

  3. 2.Visual Studio 2013中的默认快捷键

    这篇大致是IDE的使用技巧,常用的也就那么几个. 我自己用的最多的是注释.取消注释.格式调整.运行测试.开始调试.断开调试.重新开始调试.删除行ctrl+L.保存.全部保存.打开资源管理器.搜索等几个 ...

  4. 【原】浅谈Firefox下的js、css、图片阻塞现象(一)

    外部js文件阻塞body中的图片 以如下html为例: <!DOCTYPE HTML> <html> <head> <meta http-equiv=&quo ...

  5. 使用Spire PDF for .NET将HTML转换成PDF文档

    目录 开发环境说明 Spire PDF for .NET (free edition)体验 资源下载 开发环境说明 Microsoft Visual Studio 2013 Ultimate Edit ...

  6. 2014.8.18for循环

    for循环 1.初始状态 2.循环条件 3.循环体 4.状态改变 语法    for( 初始状态 ; 循环条件 ; 状态改变 ) { 循环体; } eg: ; i <= ; i++) { Con ...

  7. asp.net 下载文件(图片、word、excel等)

    string filePath = Server.MapPath("~/excel.xlsx"); if (File.Exists(filePath)) { FileStream ...

  8. c++ 学习备忘

    char* 到 LPCTSTR 转换 char *m_str = "test!"; MessageBoxW(CString(m_str)); CString to LPCTSTR ...

  9. JavaSE复习日记 : 接口

    /* * 接口 * 引用数据类型: * 类,接口,数组; * * 接口是一种引用数据类型,可以看作是一个特殊的类,它存在的目的是为了解决没有多重继承引起的功能弱的问题而设计的,一个类只能有一个父类,但 ...

  10. VS2010断点无效

    可能的原因如下: 1. 菜单tools->Options->Debugging->General,有个Require  source files to exactly match t ...