若仅批量修改文件名,可查看批量修改文件名,这里主要介绍批量修改文件名并移动到新的文件夹中的方法,具体代码如下(代码中有注释进行详细说明):文章来源地址https://www.toymoban.com/news/detail-619531.html
import os.path
import shutil
import os
num = 0 #修改文件名的数量词
imge_count = 717
#保存图片模块
def moveFiles(path, disdir): # path为原始路径,disdir是移动的目标目录
dirlist = os.listdir(path)
for i in dirlist:
child = os.path.join('%s/%s' % (path, i))
if os.path.isfile(child):
imagename, jpg = os.path.splitext(i) # 分开文件名和后缀
shutil.copy(child, os.path.join(disdir, imagename + ".jpg"))#保存格式自己设置
# 复制后改为原来图片名称
# 也可以用shutil.move()
continue
moveFiles(child, disdir)
#重命名模块
def rename(img_folder):
for img_name in os.listdir(img_folder): # os.listdir(): 列出路径下所有的文件
#os.path.join() 拼接文件路径
global imge_count
src = os.path.join(img_folder, img_name) #src:要修改的目录名
dst = os.path.join(img_folder, 'BulletHole_'+ str(imge_count) + '.jpg') #dst: 修改后的目录名 注意此处str(num)将num转化为字符串,继而拼接
imge_count= imge_count + 1
os.rename(src, dst) #用dst替代src
def get_source_img_path(rootPath):
file_ls = []
for root, dirs, files in os.walk(rootPath):
if files:
root_file_ls = [os.path.join(root, file) for file in files]
file_ls.append(root_file_ls)
return file_ls
def get_child_dirsName(rootPath):
childDirsName = []
for root, dirs, files in os.walk(rootPath):
for dir in dirs:
childDirsName.append(str(dir))
return childDirsName
def main():
rootPath = "/home/y/Code/test/dataset/"
childDirsName = get_child_dirsName(rootPath)
for dir_name in childDirsName:
#要修改文件名的路径
img_folder0 = rootPath + dir_name #图片的文件夹路径 直接放你的文件夹路径即可
rename(img_folder0)
#保存图片代码
disdir = '/home/y/Code/test/test_dataset' # 移动到目标文件夹
moveFiles(img_folder0, disdir)
if __name__=="__main__":
main()
文章来源:https://www.toymoban.com/news/detail-619531.html
到了这里,关于【批量修改文件名并移动】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!