19、模块(collection模块、time模块、os模块、sys模块)

一、collection模块

  1、namedtuple :生成可以使用名字访问元素内容的tuple

  

from collections import namedtuple
point=namedtuple('ppoint',['x','y','z'])
p1=point(2,5,9)
print(p1)

 

  2、deque:生成双端数列,可以从两段进行添加和访问的数列

  

  使用list存储数据时,按索引访问元素很快,但是插入和删除元素就很慢了,因为list是线性存储,数据量大的时候,插入和删除效率很低。deque是为了高效实现插入和删

除操作的双向列表,适合用于队列和栈。

  deque除了实现list的append()pop()外,还支持appendleft()popleft(),这样就可以非常高效地往头部添加或删除元素。

  

from collections import deque
qq=deque([1,3])    #从后面放数据 deque[1,3,'a']
qq.append('a')     #从前面放数据 deque['g',1,3,'a']
qq.appendleft('g')
print(qq)

  3、OrderedDict 有序字典,将字典变成一个有顺序的字典。注意:OrderedDict会按照插入的顺序排列,而不是按照key本身

  

from collections import OrderedDict
qq=OrderedDict([('a',1),('b',2),('c',3)])
qq[1]='a'
qq[4]=5
qq['g']='k'
print(qq.keys())

   4、defaultdict:希望在dict中key不存在时,不是报错误,而是返回一个默认值,那么就用defaultdict

  

from collections import defaultdict
dd=defaultdict(lambda :'lalala')     #默认返回值
dd['ab']='c'                  #赋值
print(dd['ab'])              #'ab'的值存在
print(dd['bb'])              #’bb'的值不存在,返回  lalala

 

  5、counter:用来统计值出现的次数,它是一个无序的容器类型,以字典的键值对形式存储,其中元素作为key,其计数作为value。计数值可以是任意的Interger(包括0和负数)。Counter类和其他语言的bags或multisets很相似

from collections import Counter
d=Counter('jndfsahfudf;kldafjdfbjSJIDJIOF')
print(d)

二、time   时间模块

  用时间模块之前应该导入事件模块

  常用的方法:

  time.time():获取当前的时间戳

  time.sleep(secs):(线程)推迟指定的时间运行,单位为秒

1、表示时间的三种方式:

  1、时间戳:通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型

  2、格式化的时间字符串(Format String): ‘1999-12-06’

  3、元组(struct_time) :struct_time元组共有9个元素共九个元素:(年,月,日,时,分,秒,一年中第几周,一年中第几天等)

   时间戳是计算机能够识别的时间;时间字符串是人能够看懂的时间;元组则是用来操作时间的

2、struct_time(元祖)

  time.localtime():将当前时间戳转化为当前时区struct_time

3、time.strftime():格式化时间字符串

  

>>>time.strftime("%Y-%m-%d %X")
'2017-07-24 13:54:37'
>>>time.strftime("%Y-%m-%d %H-%M-%S")
'2017-07-24 13-55-04'

 

 http://www.cnblogs.com/Eva-J/articles/7228075.html#_label6

 

三、os模块

os模块是编译器与操作交互的接口

'''
os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径
os.chdir("dirname")  改变当前脚本工作目录;相当于shell下cd
os.curdir  返回当前目录: ('.')
os.pardir  获取当前目录的父目录字符串名:('..')
os.makedirs('dirname1/dirname2')    可生成多层递归目录
os.removedirs('dirname1')    若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
os.mkdir('dirname')    生成单级目录;相当于shell中mkdir dirname
os.rmdir('dirname')    删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
os.listdir('dirname')    列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
os.remove()  删除一个文件
os.rename("oldname","newname")  重命名文件/目录
os.stat('path/filename')  获取文件/目录信息
os.sep    输出操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
os.linesep    输出当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
os.pathsep    输出用于分割文件路径的字符串 win下为;,Linux下为:
os.name    输出字符串指示当前使用平台。win->'nt'; Linux->'posix'
os.system("bash command")  运行shell命令,直接显示
os.popen("bash command).read()  运行shell命令,获取执行结果
os.environ  获取系统环境变量

os.path
os.path.abspath(path) 返回path规范化的绝对路径 
os.path.split(path) 将path分割成目录和文件名二元组返回
os.path.dirname(path) 返回path的目录。其实就是os.path.split(path)的第一个元素
os.path.basename(path) 返回path最后的文件名。如果path以/或\结尾,那么就会返回空值。即os.path.split(path)的第二个元素 os.path.exists(path) 如果path存在,返回True;如果path不存在,返回False os.path.isabs(path) 如果path是绝对路径,返回True os.path.isfile(path) 如果path是一个存在的文件,返回True。否则返回False os.path.isdir(path) 如果path是一个存在的目录,则返回True。否则返回False os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略 os.path.getatime(path) 返回path所指向的文件或者目录的最后访问时间 os.path.getmtime(path) 返回path所指向的文件或者目录的最后修改时间 os.path.getsize(path) 返回path的大小
'''
stat 结构:

st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小;包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的"ctime"。在某些系统上(如Unix)是最新的元数据更改的时间,在其它系统上(如Windows)是创建时间(详细信息参见平台的文档)。

stat 结构

四、sys模块

sys模块是与python解释器交互的接口

sys.argv           命令行参数List,第一个元素是程序本身路径
sys.exit(n)        退出程序,正常退出时exit(0),错误退出sys.exit(1)
sys.version        获取Python解释程序的版本信息
sys.path           返回模块的搜索路径,初始化时使用PYTHONPATH环境变量的值
sys.platform       返回操作系统平台名称

 

posted @ 2018-01-10 18:38  王二黑  阅读(234)  评论(0编辑  收藏  举报