python批处理之文件重命名(rename)与文件搬移(move)

python批处理之文件重命名(rename)与文件搬移(move)

博主在进行深度学习实验时,需要用到python下的批处理。其中两个比较常用的批处理操作是文件的重命名(rename)和文件搬移到其他文件夹(move),其中在生成随机的训练,验证,测试集时,需要随机将所有图像按照一定比例分到这三个文件夹中。废话不说直接上代码:

文件批量化重命名rename

import os
class ImageRename():
    def __init__(self):
        self.path = '/home/Dataset/outdoor_modx3/'         #加载路径将文件夹outdoor_modx3中的所有图片重命名

    def rename(self):
        filelist = os.listdir(self.path)
        total_num = len(filelist)
        
        i = 1
        
        for item in filelist:
            src = os.path.join(self.path, item)
            dst = os.path.join(self.path, 'ori.' + str(i) + '.png')
            os.rename(src, dst)
            i = i + 1
if __name__ == '__main__':
    newname = ImageRename()
    newname.rename()

随机数量的文件搬移move

import os
import random
import shutil
import skimage.io as io

def moveFile(fileDir,tarDir):

    pathDir = os.listdir(fileDir)
    for filename in pathDir:
        print (filename)
        
    coll = io.ImageCollection(str)
    print(len(coll))
    num = 2581                               # 随机选择2581个文件进行move
    #num = int (len(coll)/2)
    print(num)
    sample = random.sample(pathDir,num)

    for name in sample:
        shutil.move(fileDir+name,tarDir+name)

if __name__ == '__main__':
   fileDir = "/home/Dataset/TRAIN_TC/"       # 将fileDir路径下的文件按照上面num确定的数量move到tarDir文件夹中
   tarDir = "/home/Dataset/train/TRAIN_MIX/"
   str = '/home/Dataset/train/TRAIN_MIX/*.png' 
   moveFile(fileDir,tarDir)

在使用时,将上述代码分别保存到rename.py和movefile.py文件中,在命令行下

python rename.py

大功告成

你可能感兴趣的:(深度学习,计算机,python批处理,rename,random,move,file)