Python的os模块详解

在Python中有一个概念叫做模块(module),这个和C语言中的头文件以及Java中的包差不多,比喻一下,模块就是工具箱,要想使用这个工具箱中的工具(函数、类),就需要先导入这个模块。
在Python中用关键字“import”来导入某个模块,例如导入os模块:

import os

和C语言的头文件一样,导入模块要写在最前面。
os是我学习python用到的第一个模块,它主要包含普遍的操作系统功能。
以下列出os中的常用函数及说明:(path及file都要是字符串)

关于文件/目录的函数

os.remove(path)        	    # 删除一个文件
os.rename(oldName, newName) # 重命名文件,如不是当前路径,需写相对路径
os.listdir(path)            # 获取指定路径下的所有文件名和目录名
os.getcwd()                 # 获取当前工作目录
os.chdir(path)              # 改变工作目录
os.mkdir(path)              # 创建单层目录,如该目录已存在返回异常
os.makedirs(path)           # 递归创建多层目录,如该目录已存在返回异常
os.rmdir(path)              # 删除单层目录,如该目录非空则返回异常
os.removedirs(path)         # 递归删除目录,从子目录到父目录逐层尝试删除,遇到非空目录返回异常
os.system(command)          # 运行系统的shell命令,运行成功返回数字0
os.popen(command)           # 运行系统的shell命令,将运行的输出结果保存在一个文件中,
                            # 可用read()读取,如:os.popen(command).read()
                            
os.walk(top)                # 遍历top路径以下所有的子目录,返回一个三元组:(路径, 目录名, 文件名)
os.curdir                   # 返回当前目录('.')
os.pardir                   # 返回上一级目录('..')
os.sep                      # 输出操作系统特定的路径分隔符(Win下为'\\',Linux下为'/')
os.linesep                  # 输出当前平台使用的行终止符(Win下为'\r\n',Linux下为'\n')
os.name                     # 输出当前使用的操作系统
                            #(包括:'posix'(linux/unix), 'nt'(windows), 'mac', 'os2', 'ce', 'java')
                            
os.scandir(path)			# 返回一个关于path目录下文件的DirEntry可迭代对象
							# 具有以下属性和方法:
							# name: 文件名,相对于 scandir path 参数( 对应于 os.listdir的返回值)
							# path: 输入的路径名 ( 不一定是绝对路径) --与 os.path.join(scandir_path, entry.name)
							# is_dir(*, follow_symlinks=True): 类似于 pathlib.Path.is_dir(),但返回值在 DirEntry 对象上是缓存;大多数情况下不需要系统调用;如果 follow_symlinks 是 false,则不要跟随符号链接。
							# is_file(*, follow_symlinks=True): 类似于 pathlib.Path.is_file(),但返回值在 DirEntry 对象上是缓存;大多数情况下不需要系统调用;如果 follow_symlinks 是 false,则不要跟随符号链接。
							# is_symlink(): 类似 pathlib.Path.is_symlink(),但返回值缓存在 DirEntry 对象上;大多数情况下不需要系统调用。
							# stat(*, follow_symlinks=True): 类似 os.stat(),但返回值缓存在 DirEntry 对象上;不需要对 Windows进行系统调用;如果 follow_symlinks 是 false,则不跟随符号链接( 像 os.lstat() )。
							# inode(): 返回项的节点数;返回值在 DirEntry 对象上缓存。

os.path常用函数

os.path.basename(path)          # 去掉目录路径,单独返回文件名
os.path.dirname(path)           # 去掉文件名,单独返回目录路径
os.path.exists(path)            # 检验给出的路径是否真地存在
os.path.join(path1, path2, ...) # 将path1, path2, ...组合成一个路径名
os.path.split(path)             # 分割文件名与路径,返回(f_path, f_name)元组。
                                # 如果目录中无文件,它会将最后一个目录作为文件名分离,且不会判断文件或者目录是否存在
                                
os.path.splitext(file)          # 分离文件名与扩展名,返回(f_name, f_extension)元组
os.path.getsize(file)           # 返回指定文件的大小,单位字节
os.path.abspath(file)           # 获得文件绝对路径
os.path.getatime(file)          # 返回指定文件最近的访问时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getctime(file)          # 返回指定文件的创建时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.getmtime(file)          # 返回指定文件最新的修改时间(浮点型秒数,可用time模块的gmtime()或localtime()函数换算)
os.path.isdir(path)             # 判断指定路径是否存在且是一个目录
os.path.isfile(path)            # 判断指定路径是否存在且是一个文件
os.path.islink(path)            # 判断指定路径是否存在且是一个符号链接
os.path.ismount(path)           # 判断指定路径是否存在且是一个挂载点
os.path.samefile(path1, paht2)  # 判断path1和path2两个路径是否指向同一个文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

万俟淋曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值