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

python标准库学习2-OS

2016-03-18 17:21 465 查看
Python os模块包含普遍的操作系统功能。如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的。
一.获取分隔符的一些函数

1.os.sep():获取路径分隔符

2.os.altsep():获取包含可选的路径分隔符

3.os.pathsep():获取环境变量的分割路径名

4.os.linesep():获取文本文件的字符串分隔符

下面是windows的一些示例

>>> os.sep
'\\'
>>> a='d:'+os.sep+'oradata'+os.sep+'orcl'
>>> a
'd:\\oradata\\orcl'
>>> os.altsep
'/'
>>> os.pathsep
';'
>>> os.linesep
'\r\n'


二.操作系统命令的一些函数或方法

1.os.name():获取操作系统平台有如下:
'posix'
,
'nt'
,
'os2'
,
'ce'
,
'java'
,
'riscos'


2.os.environ():对环境变量进行映射

3.os.getcwd():获取当前的目录位置

4.os.chdir():改变当前目录位置

5.os.ctermid():返回控制台终端的名字(unix系统中才生效)

6.os.getegid,os.geteuid,os.getgid,os.getgroups,os.initgroups,os.getlogin,os.getpgid,os.uname,os.umask,os.setuid,os.unsetenv等等(unix系统中才生效)

7.os.listdir():返回目录内的文件列表

8.os.mkdir():创建目录,目录如果已经存在返回一个OSError的异常

9.os.makedirs():递归创建多层目录,如果已经存在则返回OSError的异常,类似于mkdir -p

10.os.remove():删除文件,如果文件不存在同样返回异常

11.os.rmdir():删除文件夹,如果目录非空则返回异常

12.os.removedirs():递归删除目录,遇到非空返回异常

13.os.rename():重命名,可以对文件也可以对文件夹

14.os.system():执行系统命令

15.os.walk(path):遍历路径下的所有目录,返回一个三元数组对象,可以使用list查看,分别为[当前路径],[所包含的所有文件夹],[包含的所有文件]

16.os.curdir:指代当前目录.

17.os.pardir:指代上级目录..

18.改变权限的一些函数:

os.chroot(),os.chmod(path,mode),os.chown(path,uid,gid)等等

19.os.access(path,mode)检查一个文件的操作,类似于shell中的test.下面的例子检查文件是否有读的权限

if os.access("myfile", os.R_OK):
with open("myfile") as fp:
return fp.read()
return "some default data"


其中os.F_OK文件是否存在,os.R_OK是否可读,os.W_OK是否可写,os.X_OK是否可执行

几乎所有的对文件,目录和常用的操作系统命令都可以在python的os模块中找到

三.os.path模块

1.os.path.abspath(path):返回一个绝对路径,可以用来规范话路径.等于os.path.normpath(os.path.join(os.getcwd(),'1.txt'))

>>> os.path.abspath('1.txt')
'/root/1.txt'
>>> os.path.normpath(os.path.join(os.getcwd(),'1.txt'))
'/root/1.txt


2.os.path.basename(path):返回文件名,去掉路径名

>>> os.path.basename('root/1.txt')
'1.txt'


3.os.path.commonprefix(list):返回最长的一个包含所有列表的路径名,注意这个只是字符的比较,不会检测这个路径是否正确

>>> os.path.commonprefix(['/root/pack/hello.py','/home/oracle'])
'/'
>>> os.path.commonprefix(['/root/aa/hello.py','/root/aa/aa/1.txt'])
'/root/aa/'


4.os.path.dirname(path):返回路径名,去除掉文件名,和basename相反

>>> os.path.dirname('/root/1.txt')
'/root'


5.os.path.exists(path):检查路径和文件是否存在,存在返回True,否则返回False,特别的对于软连接,当软连接存在但是失效的时候也返回False

>>> os.path.exists('/root/test3')
True
>>> os.path.exists('/root/test3/1.txt')
False


6.os.path.lexists(path):和上面所不同的是对软连接只要存在即返回True

>>> os.path.exists('2.py')
False
>>> os.path.lexists('2.py')
True


7.os.path.getatime/getctime/getmtime:获取文件的访问时间,创建时间,修改时间

>>> print '%s %s %s' % (os.path.getatime('1.txt'),os.path.getctime('1.txt'),os.path.getmtime('1.txt'))
1458219953.35 1458219949.54 1458219949.54


8.os.path.getsize(path):获取文件或者文件夹的大小,和ls -l看出来的一致,不存在将发生OSError异常,

9.os.path.isabs(path),os.path.isfile(path),os.path.isdir(path),os.path.islink(path),os.path.ismount(path):分别判断一个路径是否为绝对路径,是否为目录,是否为文件,是否为链接,是否为mount点

10.os.path.join(path,*paths):使用os.sep将指定的路径合成完整的路径,其中unix和windows的稍不同,具体示例如下:

>>> os.path.join('/root','test','a.txt')
'/root/test/a.txt'


>>> os.path.join('d:\\','oracle','admin','bdump','alter.log')
'd:\\oracle\\admin\\bdump\\alter.log'


11.os.path.normcase(path):规范路径在unix系统中不变,在windows系统中会将path变为小写

>>> os.path.normcase('D:/A.txt')
'd:\\a.txt'


12.os.path.normpath(path):规范化路径,在windows中不会将path变为小写

13.os.path.realpath:返回一个真实的路径,即绝对路径

>>> os.path.realpath('test.txt')
'/root/test.txt'


14.os.path.samefile(path,path):判断文件夹或者文件是否一样,对于软连接和原始文件返回True

15.os.path.sameopenfile(fp1,fp2):判断打开的文件句柄是否一致

16.os.path.samestat(stat1,stat2):判断使用stat指向的是否一致

17.os.path.split(path):将一个路径分离成一个元组,分别为目录名和文件名,特别需要注意的是在目录结尾如果有分隔符则把最后的当作目录,如果没有则把他当作文件

>>> os.path.split('/home/oracle/a.txt')
('/home/oracle', 'a.txt')


>>> os.path.split('/home/oracle/a.txt/')
('/home/oracle/a.txt', '')


18.os.path.splitdrive(path):分割驱动器,如果不存在则为空

>>> os.path.splitdrive('d:\\a.txt')
('d:', '\\a.txt')


19.os.path.splitext(path):分割扩展名,如果不存在则为空

>>> os.path.splitext('d:\\a.py')
('d:\\a', '.py')


20.os.path.walk(path,visit,arg):遍历目录,path是要遍历的目录,visit是一个回调函数,arg是给visit的回调的参数,可以为空.visit回调函数
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: