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章的更多相关文章

  1. python参考手册--第1章python简介

    1.if __name__ == '__main__': 直接运行myModel.py时,当前模块的名字是main:import myModel然后运行的时候当前模块的名字是myModel. 2.ev ...

  2. python参考手册--第8章

    1.模块和import (1)首次import module会做以下3件事: a)创建新的命名空间,用作在该源文件中定义的所有对象的容器.在模块中定义的函数和方法在使用global语句时将访问该命名空 ...

  3. python参考手册--第2章词汇和语法约定

    1.续行符\ 三引号.().{}.[]中的内容不需要续行符 2.空格缩进 优选空格作为缩进,不要用tab,这是因为不同操作系统下tab对应的空格不一样,而python是通过严格的空格来控制语句块的. ...

  4. python参考手册--第3章类型和对象

    1.对象的身份.类型.值 (1)身份:对象在内存中位置的指针,地址值, >>> a = [1,2,3,4,5] >>> id(a)48497328 >> ...

  5. 《python参考手册(第四版)》【PDF】下载

    <python参考手册(第四版)>[PDF]下载链接: https://u253469.pipipan.com/fs/253469-230382222 内容介绍 本书是权威的Python语 ...

  6. 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 = ...

  7. python参考手册--第10、11章执行环境、调试

    1.解释器选项和环境 python [options] [-c cmd | filename | - ] [args] 例如:python -m pdb test.py 以脚本的形式运行库模块pdb ...

  8. 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 ...

  9. [翻译] C++ STL容器参考手册(第一章 <array>)

    返回总册 本章节原文:http://www.cplusplus.com/reference/array/array/ 1. std::array (C++11支持) template < cla ...

随机推荐

  1. SQL server 2008 安装问题解决

    安装sqlserver2008 出现的一些问题解决方法 1,安装sqlserver的时候出现如下图所示,解决办法是:开始→运行→输入“regedit”→找到“HKEY_LOCAL_MACHINE\SY ...

  2. 第七篇、使用UIView的animateWithDuration方法制作简易动画

    import UIKit class LolitaCircleButton: UIButton { private var color: UIColor private var imageURL: S ...

  3. Objective-C 【多个对象内存管理(野指针&内存泄漏)】

    ------------------------------------------- 多个对象内存管理(野指针&内存泄漏) (注:这一部分知识请结合"单个对象内存管理"去 ...

  4. C# DateTimePicker控件详解

    1.同时显示日期和时间 DateTimePicker dtp = new DateTimePicker(); dtp.Format = DateTimePickerFormat.Custom;dtp. ...

  5. CSS 初体验之Line-height

    p{ line-height:20px; } line-height : normal | length 参数: normal : 默认行高length : 百分比数字 | 由浮点数字和单位标识符组成 ...

  6. c#跨窗体调用操作

    我知道的常用的有三种,以前记录的笔记: 1.通过构造函数实现 在form1的load事件中new form2时  在构造函数里添加一个参数 此参数就是form1类型的参数,同时记得在form2里重写构 ...

  7. 【原】从/dev/null重新打开标准输出

    今天遇到一个程序,使用了printf输出中间的信息,我也懒得去改.由于此进程被其他进程fork之后,dup2 了标识输入输出到了/dev/null,再通过execvp装载进来.于是,为了看到输出的信息 ...

  8. Ubuntu 设定壁纸自动切换的shell脚本

    升级到Ubuntu14.04后,感觉bug的确比12.04少多了.顶部任务栏支持半透明效果,所以整个桌面也看上去漂亮了很多.这样的桌面也是值得瞎捣鼓一下的,想到换壁纸,但是没找到设定动态更换壁纸的选项 ...

  9. C/C++编译过程理解【转】

    转载自:http://www.cppblog.com/woaidongmao/archive/2008/11/07/66254.aspx 今天,通过自己的努力终于对C/C++的编译过程有了个粗略的了解 ...

  10. 分类算法之贝叶斯(Bayes)分类器

    摘要:旁听了清华大学王建勇老师的 数据挖掘:理论与算法 的课,讲的还是挺细的,好记性不如烂笔头,在此记录自己的学习内容,方便以后复习.   一:贝叶斯分类器简介 1)贝叶斯分类器是一种基于统计的分类器 ...