python os模块总结—目录、文件操作工具
os (operating system)是python标准库中的操作系统接口,提供了很多与操作系统进行交互的函数,可快速对目录、文件进行操作。
下面我将在C:\Users\Administrator\try这一路径下执行test.py来详细说明os的常见功能。
- C:\Users\Administrator\try目录下的内容如下:
- 代码示例1
import os
print(os.getcwd()) #返回当前执行脚本所在目录的绝对路径
# C:\Users\Administrator\try
print(os.listdir(os.getcwd())) #返回当前执行脚本所在目录的所有文件或目录列表
# ['input', 'output', 'test.py', 'test.txt']
#返回目录或文件的绝对路径
print(os.path.abspath("./test.py")) # C:\Users\Administrator\try\test.py
print(os.path.realpath("./input")) # C:\Users\Administrator\try\input
#返回按照最后一个/分割成目录(或文件)路径和文件(目录)名组成的元组
print(os.path.split("C:/Users/Administrator/try")) # ('C:/Users/Administrator', 'try')
print(os.path.split("C:/Users/Administrator/try/")) # ('C:/Users/Administrator/try', '')
print(os.path.split("input")) #如果路径中无/,则分割后返回的路径部分无值
# ('', 'input')
#拼接路径
print(os.path.join("C:/Users/Administrator", "try")) #文件或目录的路径在前,文件或目录在后
# C:/Users/Administrator\try
print(os.path.join("C:/Users/Administrator/try","D:/input")) #如果两个路径均有/,则返回第二个路径
# D:/input
print(os.path.join("D:/input", "C:/Users/Administrator/try"))
# C:/Users/Administrator/try
- 代码示例2
import os
print(os.path.dirname("C:/Users/Administrator/try")) #返回最后一个/之前的路径
# C:/Users/Administrator
print(os.path.basename("C:/Users/Administrator/try")) #返回最后一个/之后的文件或目录
# try
print(os.path.getsize("C:/Users/Administrator/try/test.txt")) #返回文件的大小,如果最后一个/之后为目录,则返回0
# 0
print(os.path.exists("C:/Users/Administrator/try/test.txt")) #判断文件或目录是否存在,不区分大小写
# True
print(os.path.isdir("./dir1/test")) #判断最后一个/之后的是否为目录
# False
print(os.path.isfile("./dir1/test")) #判断最后一个/之后的是否为文件
# False
输出结果
C:/Users/Administrator
try
0
True
False
False
- 代码示例3
import os
os.mkdir("./newfile") #新建目录,当目录已存在或路径中的父目录不存在,均会报错
os.rmdir("./output") #删除指定的空目录;如果目录非空,则报错
os.remove("test.txt") #删除文件
os.makedirs("./dir1/test",exist_ok=False) #递归新建目录,类似于mkdir()
os.chdir(path) #更改当前工作目录到path
- 代码示例4
os.system("cd directory && mkdir test.txt") #在子 shell 中执行命令(字符串)的简单用法。对于需要更复杂的子进程交互或更细粒度的控制,建议使用subprocess模块代替。