一、判断文件、目录
1、使用os模块
判断文件是否存在
os.path.isfile(path)
判断目录是否存在
os.path.isdir(path)
判断路径是否存在
# 使用 path 模块
os.path.exists(path)
# 使用 access() 方法
os.access(path, os.F_OK)
2、使用pathlib 模块
import pathlib
path = pathlib.Path(‘path/to/file’)
判断文件是否存在
path.is_file()
判断目录是否存在
path.is_dir()
判断路径是否存在
path.exists()
也可以采用
from pathlib import Path
my_file = Path("/path//file")
if my_file .is_file(): # 指定的文件存在
if my_file.is_dir(): # 指定的目录存在
if my_file.exists(): # 指定的文件或目录存在
二、创建删除文件、目录
import os
# 创建目录
def Mkdir(path): # path是指定文件夹路径
if os.path.isdir(path):
# print('文件夹已存在')
pass
else:
os.makedirs(path)
# 删除目录
# 第一种
import os
os.rmdir('D:\\ss\\s') # 删除目录 如果该目录非空则不能删除
import shutil
# 第二种
shutil.rmtree(path) # 删除目录 如果该目录非空也能删除
# 创建txt文件
def Txt_Create(path, msg): # path是指定文件路径,msg是写入的文件内容
if os.path.isfile(path):
# print('文件已存在')
pass
else:
txt_file = open(path, 'w')
txt_file.write(msg)
# 删除文件
os.remove('D:\\ss\\s\\1.txt') # 删除文件
三、遍历文件夹下所有文件
方法一 : 通过递归实现遍历所有文件夹
import os
def func(path):
for i in os.listdir(path):
path2 = os.path.join(path,i) # 拼接绝对路径
if os.path.isdir(path2): # 判断如果是文件夹,调用本身
func(path2)
else:
print(i)
func(r'D:\ss')
方法二 : 通过walk方法实现
import os
for a, b, c in os.walk(r'D:\ss'): #a代表所在根目录;b代表根目录下所有文件夹(以列表形式存在);c代表根目录下所有文件
for i in c:
print(i) #结果与方法一相同
四、确定当前文件名、文件夹名
方法一 : 通过递归实现遍历所有文件夹
import os
# 这种写法只能用在当前项目文件路径上,如:当前项目文件路劲为C:/Users/CL/PycharmProjects/VTKTest/test/tt.py
folder,filename=os.path.split(__file__)
print(folder,filename) # C:/Users/CL/PycharmProjects/VTKTest/test tt.py
方法二 : 通过walk方法实现
import os
for a, b, c in os.walk(r'D:\ss'): # a代表所在根目录;b代表根目录下所有文件夹(以列表形式存在);c代表根目录下所有文件
for i in b:
print(i)
for j in c:
print(j)
输出:
# directory1
# directory2
# file1.docx
# file2.docx
# file3.docx
方法三 : 获取文件路径,直接利用切片获取文件名