import os import shutil import random def splitData(path): imgtrain = os.sep.join([path, 'images', 'train']) imgval = os.sep.join([path, 'images', 'val']) labelstrain = os.sep.join([path, 'labels', 'train']) labelsval = os.sep.join([path, 'labels', 'val']) Totaldata = [] for dirname in os.listdir(path): if dirname == 'labels': for fileName in os.listdir(os.sep.join([path, dirname])): Totaldata.append(fileName.split('.')[0]) #print(Totaldata) random.shuffle(Totaldata) val = Totaldata[:int(len(Totaldata)/10)] train = Totaldata[int(len(Totaldata)/10):] try: os.mkdir(imgtrain) os.mkdir(imgval) os.mkdir(labelstrain) os.mkdir(labelsval) except:pass for name in train: shutil.move(os.sep.join([path, 'images', name+'.jpg']), imgtrain) shutil.move(os.sep.join([path, 'labels', name+'.txt']), labelstrain) for name in val: shutil.move(os.sep.join([path, 'images', name+'.jpg']), imgval) shutil.move(os.sep.join([path, 'labels', name+'.txt']), labelsval) if __name__ == '__main__': path = '/home/data/New_project/testdata' splitData(path)