注意::::改完就变了,所以一定要有备份,以防不小心改错了!!!!!!!!
需求:
原来是00000
现在是0
import os
# 先读到一个列表里
files = os.listdir("D:\\dataset\\myGTSRB")
print(files)
i=0
for file in files:
ori = "D:\\dataset\\myGTSRB_" + os.sep + file
new = "D:\\dataset\\myGTSRB_" + os.sep + str(i)
os.rename(ori,new)
i+=1
print(files)
需求:
原来是这样的001.Black_footed_Albatross
现在是这样的001_Black_footed_Albatross
import os
import re
import sys
yuan = "" #原文件的目录
xian = "" # 现文件夹目录
fileList = os.listdir(yuan) # 输出此文件夹中包含的文件名称
os.chdir(xian)# 将当前工作目录修改为待修改文件夹的位置
# 名称变量
num = 1
# 遍历文件夹中所有文件
for fileName in fileList:
number,name = fileName.split(".")
os.rename(yuan+"\\"+fileName, xian+"\\"+number+"_"+name)
# 改变编号,继续下一项
num = num + 1
print("***************************************")
后来又用了一次,第一段代码,参考https://blog.csdn.net/u011622434/article/details/93876821
"""
将每一行单独生成一个txt文件夹
"""
def gen_single_txt():
import re
f = open('new.txt', 'r')
f1 = f.readlines()
for i in f1:
p = '%s.txt' % re.findall("(.*).jpg.*", i) # 返回string中所有与pattern相匹配的全部字串,返回形式为数组
print(p)
with open(p, 'w')as a:
a.write(i)
"""
但是返回的是['00599'].txt的文件夹名称,还要进行批量修改文件夹
"""
def alter_file_name():
import os
yuan = r"D:\CANRUN\efficientnet-yolo3-pytorch-master\model_data\txt_old"
xian = r"D:\CANRUN\efficientnet-yolo3-pytorch-master\model_data\txt_new"
fileList = os.listdir(yuan) # 输出此文件夹中包含的文件名称
num = 1 # 遍历文件夹中所有文件
for fileName in fileList:
number, name = fileName.split(".") # 匹配文件名正则表达式
os.rename(yuan + "\\" + fileName, xian + "\\" + number[2:7] + "." + name)
num = num + 1 # 改变编号,继续下一项
print("***************************************")
if __name__ == '__main__':
gen_single_txt() # 先改成了这样['00599'].txt
alter_file_name() # 再改成了这样00599.txt
"""
本来一步到位的事情,因为我不会用正则,呜呜呜
"""
可以结合https://blog.csdn.net/weixin_42630613/article/details/107842834