python参考手册--第9章
1.读取命令行选项
(1)sys.args
python启动时,命令行选项设置在列表sys.args中。
sys.args[0]:xxx.py
sys.args[1:]: 其他参数
(2)optparser
复杂参数可以使用optparser模块处理:
USAGE = 'usage: python mymodule.py [cid] -l [level] -i [interval]'
import optparser
parser = optparser.OptionParser()
parser.add_option("-i",,dest='interval')
parser.add_option('-l',dest='level')
parser.set_defaults(level=0)
opts,args = parser.parse_args()
if len(args)<1:
print USAGE
sys.exit(1)
cid = args[0]
interval= opts.interval
level = opts.level
2.环境变量
os.environ访问及修改环境变量:
import os
path = os.environ['PATH']
3.文件及文件对象
f = open('out.txt','w')#r,w,a +,b,
f作为文件对象可以进行如下操作:
f.read([n])
f.readline([n])
f.write(s)
f.writelines(lines)
f.close()
f.tell()
f.flush()
f.next()
可以通过EOF来控制文件读取:
while True:
line = f.readline()
if not line:
break
else:
print line
或者:
for line in f:
print line
4.BOM
unicode文件也能包含特殊的BOM(byte order marker,字节顺序标记)。BOM作为文件的第一个字符输入,程序通过它,以确定该文件应该按什么格式进行编码。例如:'\xff\xfe'表示编码为:utf-16-le。则余下的字符就将按utf-16-le进行编码。
编码包装器:codecs:
f = open("somefile","rb")
#确定文档的编码encoding
#假设BOM去掉了,只剩下有意义的字符
#包装器
fenc = codecs.EncodedFile(f,encoding)
data = fenc.read()
其中encoding方式有:
ascii:[0x00,0x7f]有效,共7bit,128个
lating-1或者iso-8859-1:[ox00,oxff],即unicode字符[U+0000,U+ooff]
cp437:同iso-8859-1非常相似,在windows上的控制台应用程序运行时的默认编码。
cp1252:同iso-8859-1非常相似
utf-8:表示2个字节[U+0000,U+ ffff]的unicode,utf-8可以最少1个字节、最多3个字节来表示
0nnnnnnn表示unicode字符[U+0000,U+oo7f];110nnnnn(字节0)、10nnnnnn(字节1)表示unicode字符[U+0080,U+o7ff];1110nnnn(字节0)、10nnnnnn(字节1)、10nnnnnn(字节2)表示unicode字符[U+0800,U+ffff];
utf-16:变成16位编码
utf-16-le:变成16位编码,小端
utf-16-be:变成16位编码,大端
unicode-escape:等价于u"string"
raw-unicode-escape:等价于ur"string"
5.对象持久性及pickle、shelve模块
pickle模块将对象序列化为一个字节流,可以写入文件并在以后进行还原:dump()写入,load()还原。pickle是python专用的,不同编程语言交换数据时不要用!
import pickle
obj = SomeObj()
fw = open(filename,'wb')
pickle.dump(obj,fw)
fw.close
fr = open(filename,'rb')
obj = pickle.load(fr)
fr.close
有点类似于json
shelve类似于pickle,它将对象保存在一个类似于字典的数据库中:
import shelve
obj = SomeObj()
db = shelve.open("filename")
db['key'] = obj #保存
obj = db['key'] #查询
db.close()
python参考手册--第9章的更多相关文章
- python参考手册--第1章python简介
1.if __name__ == '__main__': 直接运行myModel.py时,当前模块的名字是main:import myModel然后运行的时候当前模块的名字是myModel. 2.ev ...
- python参考手册--第8章
1.模块和import (1)首次import module会做以下3件事: a)创建新的命名空间,用作在该源文件中定义的所有对象的容器.在模块中定义的函数和方法在使用global语句时将访问该命名空 ...
- python参考手册--第2章词汇和语法约定
1.续行符\ 三引号.().{}.[]中的内容不需要续行符 2.空格缩进 优选空格作为缩进,不要用tab,这是因为不同操作系统下tab对应的空格不一样,而python是通过严格的空格来控制语句块的. ...
- python参考手册--第3章类型和对象
1.对象的身份.类型.值 (1)身份:对象在内存中位置的指针,地址值, >>> a = [1,2,3,4,5] >>> id(a)48497328 >> ...
- 《python参考手册(第四版)》【PDF】下载
<python参考手册(第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382222 内容介绍 本书是权威的Python语 ...
- python参考手册--第4、5、6、7章
1.zip zip(s,t):将序列组合为一个元组序列[(s[0],t[0]), (s[1],t[1]), (s[2],t[2]), (s[3],t[3]),...] >>> s = ...
- python参考手册--第10、11章执行环境、调试
1.解释器选项和环境 python [options] [-c cmd | filename | - ] [args] 例如:python -m pdb test.py 以脚本的形式运行库模块pdb ...
- python参考手册 Read
P28 复制 a = [1,2,3,[1,2]] b = a b is a # True c = list[a] # shallow copy c is a # False c[3][0] = 100 ...
- [翻译] C++ STL容器参考手册(第一章 <array>)
返回总册 本章节原文:http://www.cplusplus.com/reference/array/array/ 1. std::array (C++11支持) template < cla ...
随机推荐
- AngularJS 学习随笔(一)
AngularJS 初始化加载流程: 1:浏览器载入HTML,然后把它解析成DOM 2:浏览器载入Angular.JS 脚本 3:AngularJS 等到DOMContentLoaded时间触发 4: ...
- (转)使用Visual Studio 2015开发Android 程序
环境配置: 操作系统:win 7 64位 IDE:Visual Studio 2015 SDK:installer_r24.3.3-windows 安装前提: 编辑hosts文件(在附件可下载)因为安 ...
- (转)实战Memcached缓存系统(5)Memcached的CAS程序实例
1. 非CAS 首先看一个不是CAS的Memcached程序实例.实例的问题原型,见上一篇博文. 程序实例: package com.sinosuperman.memcached; import ja ...
- ASP.NET MVC3 使用kindeditor编辑器获取不到值
做开发真的是会遇到各种问题,如果不亲自尝试,不动手,很难发现问题. 下面我们说下在MVC中的用法 1,首先引入js文件 <script type="text/javascript&qu ...
- javascript笔记——jQuery插件开发的几种方式
jQuery插件开发分为两种: 1 类级别 类级别你可以理解为拓展jquery类,最明显的例子是$.ajax(...),相当于静态方法. 开发扩展其方法时使用$.extend方法,即jQuery.e ...
- Hyper-V 虚拟机连接外部网络
Hyper-V创建好虚拟机之后,在默认配置下是没有网络连接的,这个时候就需要进行简单的配置,即可让虚拟机连接外部网络: 在Hyper-V管理器中,右键点击后出现菜单,选择"虚拟交换机管理器& ...
- vim ctags 的使用
ubantu 先安装 sudo apt-get install ctags 『基本功能使用方法』常用命令列表: 1. $ ctags –R * ($ 为Linux系统Shel ...
- 01_mvc保存时出错
修改实体类报错 存储区更新.插入或删除语句影响到了意外的行数(0).实体在加载后可能被修改或删除.刷新 ObjectStateManager 项. 原因是 数据表中的自增主键列未赋值.
- CSS3.0动画之hover---Y轴----3D旋转
div#div2{display: table; width: 100%; height: 100%; text-decoration: none; outline: none; -webkit-tr ...
- Linux下通过shell脚本创建账户
当我们在linux平台上开发一些项目时,或者有一些项目是需要部署到linux系统上时,有时候会涉及到linux上的特定的账户,例如有一些项目需要运行在某些特定的账户下,或者有时候需要在全新的环境上搭建 ...