python常用模块之os模块

os模块

  os模块是与操作系统打交道的模块, 一些对文件的操作经常要用到os模块。网上也能找到许多对os模块的整理与总结,我只对一些常用到的方法做一些整理与总结,也是对自己os模块的理解与巩固。

参考:

官方文档链接

其他博文

常用方法:

os.getcwd(): 获取当前工作目录

>>> import os
>>> os.getcwd()
'/home/yscl'

os.chdir(path):  改变当前脚本目录 同cd  

>>> os.chdir('/')
>>> os.getcwd()
'/'

os.curdir: 获取当前目录字符串 '.'

os.pardir: 获取父级目录的字符串 '..'

>>> os.curdir
'.'
>>> os.pardir
'..'

os.makedir(path, mode=0o777): 创建一个单级path的目录,模式默认所有人都有读写执行权限。若目录存在则报错

os.makedirs(name, mode=0o777, exist_ok=False): 递归的创建目录, exist_ok = False时, 目录存在则会报错

os.listdir(path='.'): 返回path路径下的所有文件和目录

os.remove(path): 删除一个名为path的文件, 当path为目录时,引发异常

os.removedirs(name): 递归的删除空目录, 从最后开始删,若目录不为空则报异常

os.rmdir(path): 删除一个空目录, 当目录非空,引发异常

os.rename(src, dst): 重名名一个文件或目录

>>> os.getcwd()  # 获取当前目录
'/home/yscl/test'
>>> os.listdir()  # 列出当前路径下所有文件和目录
['test2', 't2.txt', 't1.txt', 't3.txt']
>>> os.remove('t1.txt')  # 移除文件
>>> os.listdir()
['test2', 't2.txt', 't3.txt']
>>> os.mkdir('ttt')  # 创建文件
>>> os.listdir()
['test2', 't2.txt', 'ttt', 't3.txt']
>>> os.rename('ttt', 'ttt2')   # 重命名文件
>>> os.listdir()
['ttt2', 'test2', 't2.txt', 't3.txt']

os.stat(path): 获取文件或目录的信息

>>> os.stat('ttt2')
os.stat_result(st_mode=16893, st_ino=966670, st_dev=2049, st_nlink=2, st_uid=1000, st_gid=1000, st_size=4096, st_atime=1542958475, st_mtime=1542958475, st_ctime=1542958512)

os.name, os.sep, os.linesep, os.pathsep:  分别获取指示当前系统的字符串,特定路径分隔符,行终止符,路径分隔符

>>> os.name
'posix'
>>> os.sep
'/'
>>> os.linesep
'\n'
>>> os.pathsep
':'

os.system(command): 执行shell命令,直接输出到标准输出

os.popen(cmd, mode='r'): 从命令cmd打开管道, 返回值是一个连接到管道的打开文件对象,默认模式是读模式,同文件。

>>> os.system('ls')
t2.txt    t3.txt    test2  ttt2
0
>>> os.popen('ls')
<os._wrap_close object at 0x7fbc395af9e8>
>>> os.popen('ls').read()
't2.txt\nt3.txt\ntest2\nttt2\n'

 

os.path部分

os.path.abspath(path):  返回path的绝对路径

os.path.split(path): 将路径名path拆分为一个元组对(head, tail),其中tail是路径名的最后一个部分,head是前面的所有内容。

os.path.dirname(path): 返回 path中的目录名. 实际上是split分割后第一个值

os.path.basename(path): 返回路径名path的最后一级的名称。实际上是split() 分割后的第二个值

>>> os.path.abspath('.')
'/home/yscl/test'
>>> os.path.split('/home/yscl/test')
('/home/yscl', 'test')
>>> os.path.dirname('/home/yscl/test')
'/home/yscl'
>>> os.path.basename('/home/yscl/test')
'test'

os.path.exists(path): 判断path是否存在

os.path.isabs(path):  判断path是否为绝对路径

os.path.isfile(path):  判断path是否为一个文件

os.path.isdir(path):  判断path是否是一个目录

os.path.join(path1, path2,...):  正确的用os.sep拼接多个路径名

os.path.getatime(path): 返回path所指向的文件或目录最后的访问时间戳

os.path.getmtime(path): 返回path所指向的文件或目录最后的修改时间戳

os.path.getsize(path):  返回path所指向的文件或目录的大小

>>> os.listdir()
['ttt2', 'test2', 't2.txt', 't3.txt']
>>> os.path.exists('./ttt2')
True
>>> os.path.isabs('./ttt2')
False
>>> os.path.isfile('ttt2')
False
>>> os.path.isdir('ttt2')
True
>>> os.path.join('/', 'path', 't1.txt')
'/path/t1.txt'          
>>> os.path.getatime('ttt2')
1542958475.1221533
>>> os.path.getmtime('ttt2')
1542958475.1221533
>>> os.path.getsize('ttt2')
4096

 

posted @ 2018-11-23 16:36  yscl  阅读(119)  评论(0)    收藏  举报