您的位置:首页 > 编程语言 > Python开发

python的一些常用的标准库

2015-11-27 00:51 561 查看
一、sys
这是一个用来跟python解释器交互的模块。

sys.argv
用来想python解释器传递参数,也叫“命令行参数”。

代码如下:
#coding=utf-8
import sys
print "The file name:",sys.argv[0]
print "The number of arg:",len(sys.argv)
print "Thr arg is:",str(sys.argv)
执行:python 123.py 1 2 3
The file name: 123.py
The number of arg: 4
Thr arg is: ['123.py', '1', '2', '3']


sys.exit()

用于退出当前程序,与return的差别时,return返回一个值,而sys.exit()则返回一个异常SystemExit。
代码如下:
#coding=utf-8
import sys
for i in range(10):
if i == 5:
sys.exit()
else:
print i
执行结果:
0
1
2
3
4
需要注意的是,我们可以使用sys.exit(0)来表示正常退出;也可以sys.exit("there is something error")来提示错误

sys.path
python解释器搜索模块的路径,类似linux的PATH变量,是个list,可以用append()添加路径。

sys.stdin,sys.stdout,sys.stderr

标准输入,标准输出,标准错误
代码如下:
>>> import sys
>>> out = sys.stdout
>>> f = open("/tmp/sadas","w")
>>> sys.stdout = f
>>> print 1
>>> print 2
>>> print 3
>>> f.close()
>>> sys.stdout = out
>>> print 4
4
>>> print 5
5
需要注意的是,如果我们只需要写部分stdout到某个文件,必须要先将stdout赋值给一个变量。

二、os

os.raname

重命名文件或目录

>>> import os
>>> os.rename('b.txt','a.txt')
>>> os.rename('dirb','dira')


os.remove

删除一个文件,注意是文件,不能删除目录
>>> os.remove('a.txt')


os.listdir

返回目录中的文件列表,注意是个list,并且不能区分是个文件还是个目录
buranle@buranle:~/dira$ ls
1  2  3  4  5  a
>>> os.listdir('dira')
['5', '4', 'a', '2', '1', '3']


os.getcwd,os.chdir
当前工作目录,改变工作目录
>>> os.getcwd()
'/home/buranle'
>>> os.chdir('/tmp')
>>> os.getcwd()
'/tmp'
>>> os.pardir
'..'
另外注意,os.pardir是个变量,指向父目录,即..

os.makedirs,os.removedirs

需要注意的是,这里的removedirs只能删除空目录。
>>> os.getcwd()
'/home/buranle'
>>> os.listdir('dira')
['5', '4', 'a', '2', '1', '3']
>>> os.removedirs('dira')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/os.py", line 170, in removedirs
rmdir(name)
OSError: [Errno 39] Directory not empty: 'dira'
>>> os.removedirs('dira/a')
>>> os.listdir('dira')
['5', '4', '2', '1', '3']
>>> os.makedirs('dira/testdir')
>>> os.listdir('dira')
['5', '4', '2', 'testdir', '1', '3']


如果我们要删除一个非空的目录,可以使用shutil的rmtree模块
>>> import shutil
>>> shutil.rmtree('dira')


注意,os.makedirs还有一个功能,可以建立多层目录,类似于mkdir -p
>>> os.makedirs('/tmp/1/1/1/1/1')
>>> os.listdir('/tmp/1/1/1/1/1')
[]
os.mkdir和os.rmdir的功能大部分类似,不同的是mkdir和rmdir都只能针对一层目录。

os.stat
查看文件或目录的属性
>>> os.stat('/home/buranle')
posix.stat_result(st_mode=16877, st_ino=1050957L, st_dev=20atime=1446148660, st_mtime=1446148643, st_ctime=1446148643)
具体的信息为,权限模式,inode_number,设备,number of hard links,用户id,群组ID,文件大小(以位为单位),文件的atime,文件的mtime,文件的ctime

>>> import os
>>> import stat
>>> st = os.stat('/home/buranle')
>>> mode = st.st_mode
>>> mode
16877
>>> print bin(stat.S_IMODE(mode))
0b111101101
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: