Python模块之os


1. os模块常见方法和属性介绍

1.1 操作系统相关

属性函数说明
os.sep输出操作系统特定的路径分隔符(Win下为’\’,Linux下为’/’)
os.name指代当前使用的操作系统(包括:‘posix’, ‘nt’)
os.curdir指代当前目录(’.’)
os.pardir指代上一级目录(’…’)
os.linesep当前平台使用的行终止符(Win下为’\r\n’,Linux下为’\n’)

1.2 文件/目录相关操作

属性函数说明
os.chdir(path)改变工作目录
os.getcwd()返回当前工作路径
os.listdir(path)返回一个包含指定目录下所有文件名(包含目录)的列表
os.mkdir(path)创建单层目录,如该目录已存在抛出异常。相当于Linux下的mkdir
os.makedirs(path)递归创建多层目录,如该目录已存在抛出异常,相当于Linux下的mkdir -p
os.rmdir(path)删除单层目录,如该目录非空则抛出异常。
os.removedirs(path)递归删除目录,从子目录到父目录逐层尝试删除,遇到目录非空则抛出异常
os.rename(old, new)将文件(目录)old → new,若重命名后的文件名已存在,则重命名失败
os.remove(file)删除文件
os.stat(file)获得文件属性

os.removedirs

经测试,windows下无法递归删除,Linux下可以。

os.stat

>>> os.stat('1.py')
os.stat_result(
st_mode=33277, st_ino=134428, st_dev=64769, st_nlink=1, 
st_uid=1000, st_gid=1000, 
st_size=157, 
st_atime=1588953907, st_mtime=1588953898, st_ctime=1588953904
)

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: 更改时间。(当文件内容更改时,mtime才会更新)
st_ctime: 改变时间。(更改文件任何属性,例如权限等,都会更新ctime)

2. os.path 模块

os.path 模块主要用于获取文件的属性。以下是 os.path 模块的几种常用方法

函数名使用方法
os.path.basename(path)去掉目录路径,返回文件名
os.path.dirname(path)去掉文件名,返回目录路径
os.path.join(path, *paths)将path1, path2…各部分组合成一个路径名
os.path.split(path)分割文件名与路径,返回(f_path, f_name)元组。如果完全使用目录,它也会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
os.path.splitext(path)分离文件名与扩展名,返回(f_name, f_extension)元组
os.path.getsize(file)返回文件大小
os.path.getatime(file)返回指定文件最近的访问时间(纪元秒)
os.path.getctime(file)返回指定文件最近改变时间(纪元秒)
os.path.getmtime(file)返回指定文件最近更改时间(纪元秒)

以下为函数返回 True 或 False
函数使用方法
os.path.exists(path)判断指定路径(目录或文件)是否存在
os.path.isabs(path)判断指定路径是否为绝对路径
os.path.isdir(path)判断指定路径是否存在且是一个目录
os.path.isfile(path)判断指定路径是否存在且是一个文件
os.path.islink(path)判断指定路径是否存在且是一个符号链接
os.path.ismount(path)判断指定路径是否存在且是一个挂载点
os.path.samefile(path1, paht2)判断path1和path2两个路径是否指向同一个文件

3. 常用实例

  • os.path.realpath(__file__)
    os.path.realpath(__file__) 返回__file__所在脚本的绝对路径加文件名。
    os.path.dirname(os.path.realpath(__file__)) 返回__file__所在脚本的绝对路径。
    与os.getcwd()区别:
    os.getcwd()可以理解为当前的执行目录,完全与py文件所在的位置无关。
>>> print(os.path.realpath(__file__))
D:\python练习脚本\043.py
>>> os.path.dirname(os.path.realpath(__file__))
'D:\\python练习脚本'
###切换工作目录后,os.getcwd()返回值也随之变化
>>> os.getcwd()
'D:\\python练习脚本'
>>> os.chdir(r'D:\电影娱乐')
>>> os.getcwd()
'D:\\电影娱乐'

4. os.popen, os.system()区别

Python调用Shell,有两种方法:os.system(cmd)或os.popen(cmd)

两者的区别是:

  • os.system(cmd)的返回值是脚本的退出状态码,只会有0(成功),1,2
  • os.popen(cmd)返回脚本执行的输出内容作为返回值

https://cloud.tencent.com/developer/article/1486996

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值