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

大功告成

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值