常用函数
- 获取当前路径
os.getcwd()
- 判断文件或目录是否存在
os.path.exists
- 判断路径是文件形式
os.path.isfile
- 创建目录
os.mkdir
- 复制文件
shutil.copy
- 拼接路径
os.path.join
自动选择 \ 或 / - 删除文件
os.remove
将文件夹下的所有同格式文件提取出来
import os, shutil
import re
def merge_files():
root = "."
xml_path = "./Annotations/"
if not os.path.exists(xml_path): # 目标路径不存在, 则创建
os.makedirs(xml_path)
jpg_path = "./Images/"
if not os.path.exists(jpg_path): # 目标路径不存在, 则创建
os.makedirs(jpg_path)
for root, dirs, files in os.walk(root,topdown = True):
for file in files:
file_path = os.path.join(root, file) # file是文件名, path是相对路径
if re.search("Annotations.*xml", file_path):
dst_path = os.path.join(xml_path, file)
if os.path.isfile(dst_path): pass # 文件不存在,则复制
else: shutil.copy(file_path, dst_path)
continue
if re.search("Image.*jpg", file_path):
dst_path = os.path.join(jpg_path, file)
if os.path.isfile(dst_path): pass
else: shutil.copy(file_path, dst_path)
merge_files()
合并文件,类似于cat命令
file = "train.txt"
if os.path.exists(file):
os.remove(file)
with open(file, 'a') as w:
with open("2007_train.txt", 'r') as r:
txt = r.read()
w.write(txt)
with open("2007_val.txt", 'r') as r:
txt = r.read()
w.write(txt)
win系统下复制文件 shutil.copy命令
使用高级文件接口:shutil
src = "./1.txt"
dst = "E:"
shutil.copy(src, dst) # 会发生覆盖
不建议使用 os.system 命令:
""" - 路径分割必须是反斜杠!!! - 相对路径或绝对路径都可以,跨盘复制也可以 - 文件存在则覆盖 """
src = ".\\1.txt"
dst = "E:"
sh = "copy " + src + " " + dst
os.system(sh)