python os 方法
只记录那些我用到的,不照搬照抄
1、os方法
os.getcwd() # 返回当前工作目录。
os.listdir(xxx) # 返回目录下的所有文件/文件夹名字的list。
os.makedir(xxx) # 一层一层的创建文件夹,如果父文件夹不存在,则不能创建出子文件夹,更为保险。
os.makedirs(xxx) # 可以一次创建多级目录,就算父文件夹不存在,它也可以创建出来。
os.rename(oriname, newname) # 用于修改文件名称,文件名称要绝对路径。⭐
1.1 获取路径后并把所有文件/文件夹输出为 list
os.listdir(os.getcwd()) # 绝妙的搭配!⭐
os.system("pause") # 暂停程序,按任意键继续执行。
1.2 生成文件夹 ⭐
# 方法一
log_dir = 'weights'
if not os.path.exists(log_dir):
os.makedirs(log_dir)
# 方法二
os.makedirs("output", exist_ok=True)
# 是否在目录存在时触发异常。
# 如果 exist_ok 为 False(默认值),则在目标目录已存在的情况下触发 FileExistsError 异常;
# 如果 exist_ok 为 True,则在目标目录已存在的情况下不会触发 FileExistsError 异常。
2、os.path() 模块
os.path.dirname(xxx) # 去掉路径的文件名,返回目录(dirname)。
os.path.basename(xxx) # 去掉路径的目录,返回文件名(basename)。 ⭐
os.path.split(xxx) # 将路径分割为目录和文件名,返回元组。
os.path.splitext(xxx) # 将路径的文件名和后缀名分割,返回元组。 ⭐
举例
import os
path = "/data/coco/images/val2014/COCO_val2014_000000000711.jpg"
print(path)
image_dir = os.path.dirname(path)
label_dir = "labels".join(image_dir.rsplit("images", 1)) # mark,替换路径目录中的特定字符做法
print(image_dir)
print(label_dir)
filename = os.path.basename(path)
print(filename)
split = os.path.splitext(path)
print(split)
print(os.path.splitext(path)[0]+'.txt') # mark,替换路径后缀的做法
'''
/data/coco/images/val2014/COCO_val2014_000000000711.jpg
/data/coco/images/val2014
/data/coco/labels/val2014
COCO_val2014_000000000711.jpg
('/data/coco/images/val2014/COCO_val2014_000000000711', '.jpg')
/data/coco/images/val2014/COCO_val2014_000000000711.txt
'''
常用的几行代码 ⭐
os.path.exists(dir) # 判断路径存在。
os.path.join(dir, file) # 将文件名和路径join起来,变成绝对路径。
os.remove(name) # 删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。
os.listdir(dir) # 用于返回指定路径下的文件和文件夹的名字的列表。
举例
if os.path.exists(dir): #判断目录是否存在
files = os.listdir(dir) #获取目录下的所有文件名 files类型是list
for file in files: #遍历所有文件 file是文件名称,类型是str