zoukankan      html  css  js  c++  java
  • 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作为文件的第一个字符输入,程序通过它,以确定该文件应该按什么格式进行编码。例如:'xffxfe'表示编码为: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()

  • 相关阅读:
    捕获Java线程池执行任务抛出的异常
    Java Singleton 单例模式
    深度解析Java内存的原型及工作原理
    使用Spring管理数据源连接池
    Java中用内存映射处理大文件
    基于Java阻塞队列的搜索实例
    Java学习之将图片文件保存到数据库
    Java使用反射调用方法
    Java程序员易犯的10个SQL错误
    Hibernate中的数据库增改删查操作
  • 原文地址:https://www.cnblogs.com/DjangoBlog/p/3535161.html
Copyright © 2011-2022 走看看