Python自动化运维
作者: [美]Wesley J. Chun(陳仲才)出版社: 人民邮电出版社原作名: Core Python Programming, 2nd Edition译者: 宋吉广出版年: 2008-06页数: 654定价: 89.00元装帧: 平装ISBN: 9787115178503
获取方法转发本文,私信发送:0709
目录· · · · · ·第1部分 Python核心第1章 欢迎来到Python世界1.1 什么是Python1.2 起源1.3 特点1.3.1 高级1.3.2 面向对象1.3.3 可升级1.3.4 可扩展1.3.5 可移植性1.3.6 易学1.3.7 易读1.3.8 易维护1.3.9 健壮性1.3.10 高效的快速原型开发工具1.3.11 内存管理器1.3.12 解释性和(字节)编译性1.4 下载和安装Python1.5 运行Python1.5.1 命令行上的交互式解释器1.5.2 从命令行启动脚本1.5.3 集成开发环境1.5.4 其他的集成开发环境和执行环境1.6 Python文档1.7 比较Python(Python与其他语言的比较)1.8 其他实现1.9 练习第2章 快速入门2.1 程序输出,print语句及“Hello World!”2.2 程序输入和raw_input()内建函数2.3 注释2.4 操作符2.5 变量和赋值2.6 数字2.7 字符串2.8 列表和元组2.9 字典2.10 代码块及缩进对齐2.11 if语句2.12 while循环2.13 for循环和range()内建函数2.14 列表解析2.15 文件和内建函数open()、file()2.16 错误和异常2.17 函数2.17.1 如何定义函数2.17.2 如何调用函数2.17.3 默认参数2.18 类2.19 模块2.19.1 如何导入模块2.19.2 如何访问一个模块函数或访问一个模块变量2.20 实用的函数2.21 练习第3章 Python基础3.1 语句和语法3.1.1 注释(#)3.1.2 继续(\)3.1.3 多个语句构成代码组(:)3.1.4 代码组由不同的缩进分隔3.1.5 同一行书写多个语句(;)3.1.6 模块3.2 变量赋值3.2.1 赋值操作符3.2.2 增量赋值3.2.3 多重赋值3.2.4 “多元”赋值3.3 标识符3.3.1 合法的Python标识符3.3.2 关键字3.3.3 内建3.3.4 专用下划线标识符3.4 基本风格指南3.4.1 模块结构和布局3.4.2 在主程序中书写测试代码3.5 内存管理3.5.1 变量定义3.5.2 动态类型3.5.3 内存分配3.5.4 引用计数3.5.5 垃圾收集3.6 第一个Python程序3.7 相关模块和开发工具3.8 练习第4章 Python对象4.1 Python 对象4.2 标准类型4.3 其他内建类型4.3.1 类型对象和type类型对象4.3.2 None--Python的Null对象4.4 内部类型4.4.1 代码对象4.4.2 帧对象4.4.3 跟踪记录对象4.4.4 切片对象4.4.5 省略对象4.4.6 XRange 对象4.5 标准类型操作符4.5.1 对象值的比较4.5.2 对象身份比较4.5.3 布尔类型4.6 标准类型内建函数4.6.1 type()4.6.2 cmp()4.6.3 str()和repr()(及``操作符)4.6.4 type()和isinstance()4.6.5 Python类型操作符和内建函数总结4.7 类型工厂函数4.8 标准类型的分类4.8.1 存储模型4.8.2 更新模型4.8.3 访问模型4.9 不支持的类型4.10 练习第5章 数字5.1 数字简介5.1.1 如何创建数值对象并用其赋值(数字对象)5.1.2 如何更新数字对象5.1.3 如何删除数字对象5.2 整型5.2.1 布尔型5.2.2 标准整型5.2.3 长整型5.2.4 整型和长整型的统一5.3 双精度浮点型5.4 复数5.5 操作符5.5.1 混合模式操作符5.5.2 标准类型操作符5.5.3 算术操作符5.5.4 *位操作符(只适用于整型)5.6 内建函数与工厂函数5.6.1 标准类型函数5.6.2 数字类型函数5.6.3 仅用于整型的函数5.7 其他数字类型5.7.1 布尔“数”5.7.2 十进制浮点型5.8 相关模块5.9 练习第6章 序列:字符串、列表和元组6.1 序列6.1.1 标准类型操作符6.1.2 序列类型操作符6.1.3 内建函数(BIF)6.2 字符串6.3 字符串和操作符6.3.1 标准类型操作符6.3.2 序列操作符切片([]和[:])6.4 只适用于字符串的操作符6.4.1 格式化操作符(%)6.4.2 字符串模板: 更简单的替代品6.4.3 原始字符串操作符(r/R)6.4.4 Unicode字符串操作符(u/U)6.5 内建函数6.5.1 标准类型函数6.5.2 序列类型函数6.5.3 字符串类型函数6.6 字符串内建函数6.7 字符串的独特特性6.7.1 特殊字符串和控制字符6.7.2 三引号6.7.3 字符串不变性6.8 Unicode6.8.1 术语6.8.2 什么是Unicode6.8.3 怎样使用Unicode6.8.4 Codec是什么6.8.5 编码解码6.8.6 把Unicode应用到实际应用中6.8.7 从现实中得来的教训6.8.8 Python的Unicode支持6.9 相关模块6.10 字符串关键点总结6.11 列表6.12 操作符6.12.1 标准类型操作符6.12.2 序列类型操作符6.12.3 列表类型操作符和列表解析6.13 内建函数6.13.1 标准类型函数6.13.2 序列类型函数6.13.3 列表类型内建函数6.14 列表类型的内建函数6.15 列表的特殊特性6.16 元组6.17 元组操作符和内建函数6.17.1 标准类型操作符、序列类型操作符和内建函数6.17.2 元组类型操作符和内建函数、内建方法6.18 元组的特殊特性6.18.1 不可变性给元组带来了什么影响6.18.2 元组也不是那么“不可变”6.18.3 默认集合类型6.18.4 单元素元组6.18.5 字典的关键字6.19 相关模块6.20 *拷贝Python对象、浅拷贝和深拷贝6.21 序列类型小结6.22 练习第7章 映像和集合类型7.1 映射类型:字典7.1.1 如何创建字典和给字典赋值7.1.2 如何访问字典中的值7.1.3 如何更新字典7.1.4 如何删除字典元素和字典7.2 映射类型操作符7.2.1 标准类型操作符7.2.2 映射类型操作符7.3 映射类型的内建函数和工厂函数7.3.1 标准类型函数[type()、str()和cmp()]7.3.2 映射类型相关的函数7.4 映射类型内建方法7.5 字典的键7.5.1 不允许一个键对应多个值7.5.2 键必须是可哈希的7.6 集合类型7.6.1 如何创建集合类型和给集合赋值7.6.2 如何访问集合中的值7.6.3 如何更新集合7.6.4 如何删除集合中的成员和集合7.7 集合类型操作符7.7.1 标准类型操作符(所有的集合类型)7.7.2 集合类型操作符(所有的集合类型)7.7.3 集合类型操作符(仅适用于可变集合)7.8 内建函数7.8.1 标准类型函数7.8.2 集合类型工厂函数7.9 集合类型内建方法7.9.1 方法(所有的集合方法)7.9.2 方法(仅适用于可变集合)7.9.3 操作符和内建方法比较7.10 集合类型总结表7.11 相关模块7.12 练习第8章 条件和循环8.1 if语句8.1.1 多重条件表达式8.1.2 单一语句的代码块8.2 else语句8.3 elif(即else-if)语句8.4 条件表达式(即“三元操作符”)8.5 while语句8.5.1 一般语法8.5.2 计数循环8.5.3 无限循环8.6 for语句8.6.1 一般语法8.6.2 用于序列类型8.6.3 用于迭代器类型8.6.4 range()内建函数8.6.5 xrange() 内建函数8.6.6 与序列相关的内建函数8.7 break语句8.8 continue语句8.9 pass语句8.10 再谈else语句8.11 迭代器和iter()函数8.11.1 什么是迭代器8.11.2 为什么要迭代器8.11.3 如何迭代8.11.4 使用迭代器8.11.5 可变对象和迭代器8.11.6 如何创建迭代器8.12 列表解析8.13 生成器表达式8.14 相关模块8.15 练习第9章 文件和输入输出9.1 文件对象9.2 文件内建函数(open()和file())9.2.1 工厂函数file()9.2.2 通用换行符支持(UNS)9.3 文件内建方法9.3.1 输入9.3.2 输出9.3.3 文件内移动9.3.4 文件迭代9.3.5 其他9.3.6 文件方法杂项9.4 文件内建属性9.5 标准文件9.6 命令行参数9.7 文件系统9.8 文件执行9.9 永久存储模块9.9.1 pickle和marshal模块9.9.2 DBM风格的模块9.9.3 shelve模块9.10 相关模块9.11 练习第10章 错误和异常10.1 什么是异常10.1.1 错误10.1.2 异常10.2 Python 中的异常10.3 检测和处理异常10.3.1 try-except语句10.3.2 包装内建函数10.3.3 带有多个except的try语句10.3.4 处理多个异常的except语句10.3.5 捕获所有异常10.3.6 “异常参数”10.3.7 在应用使用我们封装的函数10.3.8 else子句10.3.9 finally子句10.3.10 try-finally语句10.3.11 try-except-else-finally:厨房一锅端10.4 上下文管理10.4.1 with语句10.4.2 *上下文管理协议10.5 *字符串作为异常10.6 触发异常10.7 断言10.8 标准异常10.9 *创建异常10.10 (现在)为什么用异常10.11 到底为什么要异常10.12 异常和sys模块10.13 相关模块10.14 练习第11章 函数和函数式编程11.1 什么是函数?11.1.1 函数vs过程11.1.2 返回值与函数类型11.2 调用函数11.2.1 函数操作符11.2.2 关键字参数11.2.3 默认参数11.2.4 参数组11.3 创建函数11.3.1 def语句11.3.2 声明与定义比较11.3.3 前向引用11.3.4 函数属性11.3.5 内部/内嵌函数11.3.6 *函数(与方法)装饰器11.4 传递函数11.5 Formal Arguments11.5.1 位置参数11.5.2 默认参数11.6 可变长度的参数11.6.1 非关键字可变长参数(元组)11.6.2 关键字变量参数(字典)11.6.3 调用带有可变长参数对象函数11.7 函数式编程11.7.1 匿名函数与lambda11.7.2 内建函数apply()、filter()、map()、reduce()11.7.3 偏函数应用11.8 变量作用域11.8.1 全局变量与局部变量11.8.2 globa语句11.8.3 作用域的数字11.8.4 闭包11.8.5 作用域和lambda11.8.6 变量作用域和名称空间11.9 *递归11.10 生成器11.10.1 简单的生成器特性11.10.2 加强的生成器特性11.11 练习第12章 模块12.1 什么是模块12.2 模块和文件12.2.1 模块名称空间12.2.2 搜索路径和路径搜索12.3 名称空间12.3.1 名称空间与变量作用域比较12.3.2 名称查找、确定作用域、覆盖12.3.3 无限制的名称空间12.4 导入模块12.4.1 import语句12.4.2 from-import语句12.4.3 多行导入12.4.4 扩展的import语句(as)12.5 模块导入的特性12.5.1 载入时执行模块12.5.2 导入(import)和加载(load)12.5.3 导入到当前名称空间的名称12.5.4 被导入到导入者作用域的名字12.5.5 关于__future__12.5.6 警告框架12.5.7 从ZIP文件中导入模块12.5.8 “新的”导入钩子12.6 模块内建函数12.6.1 __import__()12.6.2 globals()和locals()12.6.3 reload()12.7 包12.7.1 目录结构12.7.2 使用from-import导入包12.8 模块的其他特性12.8.1 自动载入的模块12.8.2 阻止属性导入12.8.3 不区分大小的导入12.8.4 源代码编码12.8.5 导入循环12.8.6 模块执行12.9 相关模块12.10 练习第13章 面向对象编程13.1 引言13.2 面向对象编程13.2.1 面向对象设计与面向对象编程的关系13.2.2 现实中的问题13.2.3 *常用术语13.3 类13.3.1 创建类13.3.2 声明与定义13.4 类属性13.4.1 类的数据属性13.4.2 Methods13.4.3 决定类的属性13.4.4 特殊的类属性13.5 实例13.5.1 初始化:通过调用类对象来创建实例13.5.2 __init__()“构造器”方法13.5.3 __new__()“构造器”方法13.5.4 __del__()“解构器”方法13.6 实例属性13.6.1 “实例化”实例属性(或创建一个更好的构造器)13.6.2 查看实例属性13.6.3 特殊的实例属性13.6.4 建类型属性13.6.5 实例属性vs类属性13.7 绑定和方法调用13.7.1 调用绑定方法13.7.2 调用非绑定方法13.8 静态方法和类方法13.8.1 staticmethod()和classmethod()内建函数13.8.2 使用函数修饰符13.9 组合13.10 子类和派生13.11 继承13.11.1 __bases__类属性13.11.2 通过继承覆盖方法13.11.3 从标准类型派生13.11.4 多重继承13.12 类、实例和其他对象的内建函数13.12.1 issubclass()13.12.2 isinstance()13.12.3 hasattr()、getattr()、setattr()、delattr()13.12.4 dir()13.12.5 super()13.12.6 vars()13.13 用特殊方法定制类13.13.1 简单定制(RoundFloat2)13.13.2 数值定制(Time60)13.13.3 迭代器(RandSeq和AnyIter)13.13.4 *多类型定制(NumStr)13.14 私有化13.15 *授权13.15.1 包装13.15.2 实现授权13.16 新式类的高级特性(Python 2.2+)13.16.1 新式类的通用特性13.16.2 __slots__类属性13.16.3 __getattribute__()特殊方法13.16.4 描述符13.16.5 元类和__metaclass__13.17 相关模块和文档13.18 练习第14章 执行环境14.1 可调用对象14.1.1 函数14.1.2 方法14.1.3 类14.1.4 类的实例14.2 代码对象14.3 可执行的对象声明和内建函数14.3.1 callable()14.3.2 compile()14.3.3 eval()14.3.4 exec14.3.5 input()14.3.6 使用Python在运行时生成和执行Python代码14.4 执行其他(Python)程序14.4.1 导入14.4.2 execfile()14.4.3 将模块作为脚本执行14.5 执行其他(非Python)程序14.5.1 os.system()14.5.2 os.popen()14.5.3 os.fork()、os.exec*()、os.wait*()14.5.4 os.spawn*()14.5.5 subprocess 模块14.5.6 相关函数14.6 受限执行14.7 结束执行14.7.1 sys.exit() and SystemExit14.7.2 sys.exitfunc()14.7.3 os._exit() 函数14.7.4 os.kill() Function14.8 各种操作系统接口14.9 相关模块14.10 练习第2部分 高级主题第15章 正则表达式15.1 引言/动机15.2 正则表达式使用的特殊符号和字符15.2.1 用管道符号(|)匹配多个正则表达式模式15.2.2 匹配任意一个单个的字符(.)15.2.3 从字符串的开头或结尾或单词边界开始匹配(^/$ /\b /\B )15.2.4 创建字符类([])15.2.5 指定范围(-)和否定(^)15.2.6 使用闭包操作符(*,+,?,{})实现多次出现/重复匹配15.2.7 特殊字符表示、字符集15.2.8 用圆括号(())组建组15.3 正则表达式和Python语言15.3.1 re模块:核心函数和方法15.3.2 使用compile()编译正则表达式15.3.3 匹配对象和group()、groups()方法15.3.4 用match()匹配字符串15.3.5 search()在一个字符串中查找一个模式(搜索与匹配的比较)15.3.6 匹配多个字符串(|)15.3.7 匹配任意单个字符(.)15.3.8 创建字符集合([])15.3.9 重复、特殊字符和子组15.3.10 从字符串的开头或结尾匹配及在单词边界上的匹配15.3.11 用findall()找到每个出现的匹配部分15.3.12 用sub()(和subn())进行搜索和替换15.3.13 用split()分割(分隔模式)15.4 正则表达式示例15.4.1 匹配一个字符串15.4.2 搜索与匹配的比较,“贪婪”匹配15.5 练习第16章 网络编程16.1 引言16.1.1 什么是客户端/服务器架构16.1.2 客户端/服务器网络编程16.2 套接字:通信端点16.2.1 什么是套接字16.2.2 套接字地址:主机与端口16.2.3 面向连接与无连接16.3 Python中的网络编程16.3.1 socket()模块函数16.3.2 套接字对象(内建)方法16.3.3 创建一个TCP服务器16.3.4 创建TCP客户端16.3.5 运行我们的客户端与TCP服务器16.3.6 创建一个UDP服务器16.3.7 创建一个UDP客户端16.3.8 执行UDP服务器和客户端16.3.9 Socket模块属性16.4 *SocketServer模块16.4.1 创建一个SocketServerTCP服务器16.4.2 创建SocketServerTCP客户端16.4.3 执行TCP服务器和客户端16.5 Twisted框架介绍16.5.1 创建一个Twisted Reactor TCP服务器16.5.2 创建一个Twisted Reactor TCP客户端16.5.3 执行TCP服务器和客户端16.6 相关模块16.7 练习第17章 网络客户端编程17.1 什么是因特网客户端17.2 文件传输17.2.1 文件传输网际协议17.2.2 文件传输协议(FTP)17.2.3 Python和FTP17.2.4 ftplib.FTP类方法17.2.5 交互式FTP示例17.2.6 客户端FTP程序举例17.2.7 FTP的其他方面17.3 网络新闻17.3.1 Usenet与新闻组17.3.2 网络新闻传输协议(NNTP)17.3.3 Python和NNTP17.3.4 nntplib.NNTP类方法17.3.5 交互式NNTP举例17.3.6 客户端程序NNTP举例17.3.7 NNTP的其他方面17.4 电子邮件17.4.1 电子邮件系统组件和协议17.4.2 发送电子邮件17.4.3 Python和SMTP17.4.4 smtplib.SMTP类方法17.4.5 交互式SMTP示例17.4.6 SMTP的其他方面17.4.7 接收电子邮件17.4.8 POP和IMAP17.4.9 Python和POP317.4.10 交互式POP3举例17.4.11 poplib.POP3类方法17.4.12 客户端程序SMTP和POP3举例17.5 相关模块17.5.1 电子邮件17.5.2 其他网络协议17.6 练习第18章 多线程编程18.1 引言/动机18.2 线程和进程18.2.1 什么是进程18.2.2 什么是线程18.3 Python、线程和全局解释器锁18.3.1 全局解释器锁(GIL)18.3.2 退出线程18.3.3 在Python中使用线程18.3.4 没有线程支持的情况18.3.5 Python的threading模块18.4 thread模块18.5 threading模块18.5.1 Thread类18.5.2 斐波那契、阶乘和累加和18.5.3 threading模块中的其他函数18.5.4 生产者-消费者问题和Queue模块18.6 相关模块18.7 练习第19章 图形用户界面编程19.1 简介19.1.1 什么是Tcl、Tk和Tkinter19.1.2 安装和使用Tkinter 53319.1.3 客户端/服务器架构 53419.2 Tkinter与Python编程 53419.2.1 Tkinter模块:把Tk引入你的程序19.2.2 GUI程序开发简介19.2.3 顶层窗口:Tkinter.Tk()19.2.4 Tk组件19.3 Tkinter举例19.3.1 标签组件19.3.2 按钮组件19.3.3 标签和按钮组件19.3.4 标签、按钮和进度条组件19.3.5 偏函数应用举例19.3.6 中级Tkinter范例19.4 其他GUI简介19.4.1 Tk Interface eXtensions (Tix)19.4.2 Python MegaWidgets (PMW)19.4.3 wxWidgets和wxPython19.4.4 GTK+和PyGTK19.5 相关模块和其他GUI19.6 练习第20章 Web编程20.1 介绍20.1.1 Web应用:客户端/服务器计算20.1.2 因特网20.2 使用Python进行Web应用:创建一个简单的Web客户端20.2.1 统一资源定位符20.2.2 urlparse模块20.2.3 urllib模块20.2.4 urllib2模块20.3 高级Web客户端20.4 CGI:帮助Web服务器处理客户端数据20.4.1 CGI介绍20.4.2 CGI应用程序20.4.3 cgi模块20.5 建立CGI应用程序20.5.1 建立Web服务器20.5.2 建立表单页20.5.3 生成结果页20.5.4 生成表单和结果页面20.5.5 全面交互的Web站点20.6 在CGI中使用Unicode编码20.7 高级CGI20.7.1 Mulitipart表单提交和文件的上传20.7.2 多值字段20.7.3 cookie20.7.4 使用高级CGI20.8 Web( 练习