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
大功告成

1019

被折叠的 条评论
为什么被折叠?



