博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python参考手册--第9章
阅读量:5334 次
发布时间:2019-06-15

本文共 2097 字,大约阅读时间需要 6 分钟。

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()

 

转载于:https://www.cnblogs.com/DjangoBlog/p/3535161.html

你可能感兴趣的文章
解决FPDF报错:FPDF error: Not a JPEG file / FPDF error: Not a PNG file
查看>>
第三章 jQuery事件和动画
查看>>
可变数组继承不可变数组,添、删、改、查、替换
查看>>
对文本的读出和写入字符串操作
查看>>
application配置和profile隔离配置
查看>>
Ubuntu 12.04 中安装和配置 Java JDK
查看>>
Spark中RDD转换成DataFrame的两种方式(分别用Java和Scala实现)
查看>>
阿里云短信服务Java版
查看>>
读《Android深度探索(卷1)HAL与驱动开发》的一些思考05
查看>>
Django框架基础知识09-请求与响应
查看>>
修改服务中可执行文件的路径
查看>>
当Activity继承AppCompatActivity如何实现隐藏标题栏与状态栏
查看>>
web基础,用html元素制作web页面
查看>>
四种losses
查看>>
ASP 中将长标题用省略号收尾
查看>>
人要学会放弃
查看>>
JavaScript之执行环境及作用域
查看>>
【转】traits技术及模板偏特化
查看>>
Matlab---绘图及其位置摆放
查看>>
Linux下安装MySQL----来自简书(挺好的)
查看>>