从start_index开始按顺序编号命名,num位。如000001.jpg,000002.jpg
import os
import argparse as ap
def rename(path, num, start_index):
filelist = os.listdir(path)
filelist = sorted(filelist)
img = start_index
for files in filelist:
Olddir = os.path.join(path, files)
if os.path.isdir(Olddir):
continue
filename = os.path.splitext(files)[0]
filetype = os.path.splitext(files)[1]
if str(img).zfill(num) == filename:
img = img + 1
continue
New_name = str(img).zfill(num) + filetype
New_name_path = os.path.join(path, New_name)
os.rename(Olddir, New_name_path)
img = img + 1
print("Rename Done.")
if __name__ == "__main__":
parser = ap.ArgumentParser()
parser.add_argument("--images", help="Path to images",
default="./train")
parser.add_argument("--start", help="Path to images",
default=1)
parser.add_argument("--num", help="Number of digits",
default=6)
args = vars(parser.parse_args())
images_path = args["images"]
start_index = args["start"]
num = srgs["num"]
rename(images_path, num, start_index)
把文件名中指定字符串改成另一个字符串,或者直接去掉
import os
import re
import time
"""对指定目录下的所有文件进行有选择的修改名称"""
def ReFileName(dirPath,pattern):
"""
:param dirPath: 文件夹路径
:param pattern: 正则匹配模式
:return:
"""
for file in os.listdir(dirPath):
if os.path.isfile(os.path.join(dirPath, file)) == True:
newName = re.sub(pattern, "", file)
newFilename = file.replace(file, newName)
os.rename(os.path.join(dirPath, file), os.path.join(dirPath, newFilename))
print("文件名已统一修改成功")
if __name__ == '__main__':
timeStart = time.time()
dirPath = "./frames"
pattern = re.compile('B_')
ReFileName(dirPath,pattern)
timeEnd = time.time()
去掉文件名中的括号
import os
import logging
logging.disable(logging.CRITICAL)
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s-%(levelname)s:%(message)s')
def remove_kh(file_path):
file_list = os.listdir(file_path)
for file in file_list:
name = os.path.splitext(file)
name1 = name[0]
name2 = name[1]
if '(' in name1:
left_idx=name1.index('(')
right_idx = name1.index(')')
content=name1[left_idx+1:right_idx]
if content.isdigit():
before_left=name1[:left_idx]
aftet_right=name1[right_idx+1:]
newname1=before_left+aftet_right
os.renames(os.path.join(file_path,file), os.path.join(file_path,newname1.strip()+'.jpg'))
if __name__ == "__main__":
file_path='./Data'
remove_kh(file_path)