os模块常用函数
- 1、os.getcwd()
- 2、os.chdir(path)
- 3、os.mkdir(path)
- 4、os.makedirs(path)
- 5、os.path.join(path,*paths)
- 6、os.path.split()/splitext()/splitdrive()
- 7、os.path.isfile(path)
- 8、os.path.isdir(path)
- 9、os.path.abspath(path)
- 10、os.path.dirname(path)
- 11、os.path.basename(path)
- 12、os.listdir(path)
- 13、os.walk()
- 14、os.scandir(path)
- 15、os.path.getsize()
- 16、os.stat()
- 17、os.removedirs(path)
- 18、os.rmdir(path)
- 19、os.remove(path)
- 20、os.rename(old,new)
- 21、os.renames(old,new)
- 22、os.path.exists()
1、os.getcwd()
- 作用:获取当前工作路径
2、os.chdir(path)
- 参数:path–要切换的新路径
- 作用:获取当前工作路径
3、os.mkdir(path)
- 作用:创建目录(创建文件夹)
- 路径可以使用相对地址形式:
/ 不加点表示根目录 ./ 加一个点表示当前目录 ../ 两个点表示上一级目录
import os
os.chdir(r"C:\Users\51946\Desktop")
os.mkdir('/1')
os.mkdir('./1')
os.mkdir('../1')
4、os.makedirs(path)
- 作用:有别于os.mkdir(),makedirts()可创建多级目录
import os
os.chdir(r"C:\Users\51946\Desktop")
os.mkdir(r'\1') # 在C盘根目录下创建了一个文件夹1
os.makedirs(r"\2\3") # 在C盘根目录下文件夹2和子文件夹3
5、os.path.join(path,*paths)
- 作用:路径拼接
6、os.path.split()/splitext()/splitdrive()
- split() 作用:把路径最后一个文件或文件夹分割,返回元组
- splitext() 作用:分割文件扩展名,返回元组
- splitdrive()作用:分割路径的盘符,返回元组
import os
path = os.path.split(r"C:\Users\51946\Desktop")
# 分割成二元组('C:\\Users\\51946', 'Desktop')
# join()的参数必须是字符串,所以用path[0]
path1 = os.path.join(path[0], 'Desktop')
print(path1) # C:\Users\51946\Desktop
print(os.path.splitdrive(r'C:\Users\51946\Desktop'))
# 拆分成盘符和目录的元组
print(os.path.splitext(r'C:\Users\51946\Desktop\1.txt'))
# 目录\文件名+扩展名二元组
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
C:\Users\51946\Desktop
(‘C:’, ‘\Users\51946\Desktop’)
(‘C:\Users\51946\Desktop\1’, ‘.txt’)
7、os.path.isfile(path)
- 作用:用于判断对象是否为一个文件
8、os.path.isdir(path)
- 作用:判断对象是否为一个目录
9、os.path.abspath(path)
- 作用:获取path对象的完整路径(绝对路径)
import os
print("-"*24)
print(os.path.abspath('.'))# 当前路径的根目录
print(os.path.abspath('..'))#当前路径的上一级目录
print(os.path.abspath('we'))# 拼接路径,实际we文件夹并不存在
print(os.path.abspath(__file__))# 当前文件路径
print(os.path.abspath('11.txt'))# 拼接作用
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
------------------------
D:\pythonProject\caochao_excel
D:\pythonProject
D:\pythonProject\caochao_excel\we
D:\pythonProject\caochao_excel\文件和文件夹.py
D:\pythonProject\caochao_excel\11.txt
10、os.path.dirname(path)
- 作用:当path对象包含文件时返回文件所在的目录,当path对象不包含文件,只返回其上一层目录
import os
print("-"*24)
print(os.path.dirname('C:/1/2/1.txt'))
print(os.path.dirname('C:/1/2'))
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
------------------------
C:/1/2
C:/1
Process finished with exit code 0
11、os.path.basename(path)
*作用:返回path最后的文件名或者文件夹名
import os
print("-"*24)
print(os.path.basename(r'C:\1\2\1.txt'))
print(os.path.basename(r'C:\1\2'))
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
------------------------
1.txt
2
Process finished with exit code 0
12、os.listdir(path)
- 作用:返回path路径下的文件和文件夹列表
13、os.walk()
- 语法: os.walk(
top, topdown=True, οnerrοr=None, followlinks=False
)
- top:
需要遍历的文件夹的地址
- topdown:
该参数为True时,会优先遍历top目录,否则优先遍历top的子目录(默认值为 True)
- οnerrοr:
程序异常时,从一个函数调用
- followlinks:
遍历目录下的快捷方式实际所指的目录(windows10/11的文件夹快捷方式只会被当成一个文件,而不会被当成文件夹目录去遍历)
- 作用:目录树生成器,返回path内每层文件夹下路径+文件夹+文件的三元组(root,dirs,files)
import os
print("-" * 40)
for root,dirs,files in os.walk(r"C:\Users\51946\Desktop\华为交换"):
print("目录=", root, '文件夹=', dirs, '文件 =', files)
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
----------------------------------------
目录= C:\Users\51946\Desktop\华为交换 文件夹= [‘1’, ‘2’] 文件 = [‘新建.txt’]
目录= C:\Users\51946\Desktop\华为交换\1 文件夹= [‘1-1’] 文件 = [‘1.txt’]
目录= C:\Users\51946\Desktop\华为交换\1\1-1 文件夹= [] 文件 = [‘1-1.rtf’, ‘百度网盘.lnk’]
目录= C:\Users\51946\Desktop\华为交换\2 文件夹= [] 文件 = [‘递归.pdf’]
import os
print("-" * 40)
for root,dirs,files in os.walk(r"C:\Users\51946\Desktop\华为交换",topdown=False):
print("目录=", root, '文件夹=', dirs, '文件 =',files)
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
----------------------------------------
目录= C:\Users\51946\Desktop\华为交换\1\1-1 文件夹= [] 文件 = [‘1-1.rtf’, ‘百度网盘.lnk’]
目录= C:\Users\51946\Desktop\华为交换\1 文件夹= [‘1-1’] 文件 = [‘1.txt’]
目录= C:\Users\51946\Desktop\华为交换\2 文件夹= [] 文件 = [‘递归.pdf’]
目录= C:\Users\51946\Desktop\华为交换 文件夹= [‘1’, ‘2’] 文件 = [‘新建.txt’]
14、os.scandir(path)
- 作用:返回指定路径的DirEntry对象的迭代器,如果路径为“无”,则使用路径 “.”
属性和方法: name path is_dir() is_file()
import os
print("-" * 40)
for i in os.scandir(r"C:\Users\51946\Desktop\华为交换"):
print(i.path, i.name, i.is_dir())
D:\pythonProject\caochao_excel\venv\Scripts\python.exe D:\pythonProject\caochao_excel\文件和文件夹.py
----------------------------------------
C:\Users\51946\Desktop\华为交换\1 1 True
C:\Users\51946\Desktop\华为交换\2 2 True
C:\Users\51946\Desktop\华为交换\新建.txt 新建.txt False
15、os.path.getsize()
- 作用:返回指定文件的大小,当指定的路径不存在或者不可访问,将会抛出异常
16、os.stat()
- 作用:返回读取指定文件的相关属性
17、os.removedirs(path)
- 作用:从下至上删除多级空文件夹
18、os.rmdir(path)
- 作用:删除单级空文件夹
19、os.remove(path)
- 作用:删除指定目录下的文件
20、os.rename(old,new)
- 作用:重命名文件
21、os.renames(old,new)
- 作用:重命名文件到不存在的目录下
22、os.path.exists()
- 作用:判断文件/目录是否存在