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

浙公网安备 33010602011771号