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. C# SQL文件执行器的功能实现

    好一段时间没写博客了,这次我们来一起谈谈SQL文件执行器的功能实现,在ERP软件升级时往往在客户端程序更新的同时也要对数据库进行升级,ERP程序开发人员会对数据库升级的执行代码在开发的过程中以SQL文 ...

  2. 推荐两个不错的CAD二次开发(.Net)手册

    推荐两个不错的CAD二次开发(.Net)手册 http://www.mjtd.com/helpcenter/netguide/index.html http://www.ceesky.com/book ...

  3. <转>机器学习笔记之奇异值分解的几何解释与简单应用

    看到的一篇比较好的关于SVD几何解释与简单应用的文章,其实是有中文译本的,但是翻译的太烂,还不如直接看英文原文的.课本上学的往往是知其然不知其所以然,希望这篇文能为所有初学svd的童鞋提供些直观的认识 ...

  4. 20141011C#面向对象基础

    什么是对象?—— 一切皆为对象.Object 生活中常说的“东西”,就是我们程序里所指的对象. 归类——找模型——抽象 类:class,对某类众多对象共同的特点进行抽象出来的模型 对象——(抽象的过程 ...

  5. 初来乍到--------smarty

    Smarty Day01-----smarty的使用 作用:把php+html分离,程序和美工 使用: 1.下载源码包 2.目录结构 libs 源码文件 Smarty.class.php templa ...

  6. DOCTYPE声明的几种类型

    DOCTYPE声明的几种类型 DOCTYPE 声明决定着浏览器怎么去解析和渲染当前页面,所以对于页面来说是很重要的. HTML5时代,统一用 <!DOCTYPE html> 这样简单的方式 ...

  7. UPPH、UPH

    UPPH=units Per Hour Per Person,单位小时人均产能,是公司作为衡量员工工作绩效的重要指标. UPPH是衡量员工单位时间工作量的一种绩效指标. UPPH计算方式如下: UPP ...

  8. Qt双缓冲机制:实现一个简单的绘图工具(纯代码实现)

    http://blog.csdn.net/rl529014/article/details/51658350

  9. DateTimePicker——开源的Android日历类库

    Github托管地址:https://github.com/flavienlaurent/datetimepicker

  10. Noip2013错误避免

    很多的时候,我们会说,这道题我会做,算法想出来了,但是这里那里少了一些判断,导致一分未得,或是说变量名错误,或者说干脆是文件名错误.这些都不是理由,如果火箭发射半空爆炸,可以说是控制器中一个运算符错误 ...