批量更改文件名(从指定数字)
import os
path = input('请输入文件路径: ')
path = path + '/'
file_type = input('请输入文件格式: ')
start_with = int(input('请输入起始编号: '))
fileList = os.listdir(path)
n = 0
for i in fileList:
name_old = path + os.sep + fileList[n]
name_str = str(n + start_with)
# name_str = name_str.zfill(4) # 字符串前面补零
name_new = path + name_str + '.' + file_type
os.rename(name_old, name_new)
n += 1
按比例随机将文件夹内数据分两类
import os
import random
import shutil
random.seed(0) # 设置随机种子,保证随机结果可复现
files_path = input("请输入文件夹路径:")
assert os.path.exists(files_path), "path: '{}' does not exist.".format(files_path)
split_rate = float(input("请输入验证集所占比例(例如0.5):"))
file_coping = []
for file_name in os.listdir(files_path):
file_coping.append(files_path + '/' + file_name)
files_num = len(file_coping)
val_index = random.sample(range(0, files_num), k=int(files_num*split_rate))
train_files = []
val_files = []
for index, file_name in enumerate(file_coping):
if index in val_index:
val_files.append(file_name)
else:
train_files.append(file_name)
folder_train = files_path+'/splited/train'
folder_val = files_path+'/splited/val'
if not os.path.exists(folder_train):
os.makedirs(folder_train)
if not os.path.exists(folder_val):
os.makedirs(folder_val)
for item in file_coping:
if item in train_files:
shutil.copy(item, folder_train)
else:
shutil.copy(item, folder_val)
try:
train_f = open(files_path + "/splited/train.txt", "x")
eval_f = open(files_path + "/splited/val.txt", "x")
train_f.write("\n".join(train_files))
eval_f.write("\n".join(val_files))
except FileExistsError as e:
print(e)
exit(1)
print("分离成功!!!其中训练集数据 {} 个,验证集数据 {} 个。".format(len(train_files), len(val_files)))
提取指定扩展名文件
import os
import shutil
folder_old = input("请输入文件夹路径:")
folder_new = input("请输入保存路径:")
file_type = input("请输入希望复制的文件类型:")
file_saving = []
for filename in os.listdir(folder_old):
if os.path.splitext(filename)[1] == '.' + file_type:
file_saving.append(folder_old + '/' + filename)
if not os.path.exists(folder_new):
os.makedirs(folder_new)
for item in file_saving:
shutil.copy(item, folder_new)
print("成功复制 {} 个文件到 {}!!!".format(len(file_saving), folder_new))
结尾
菜鸟上路,求高手带。