python3批量隨機移動檔案分割訓練集驗證集指令碼

2021-09-25 06:08:16 字數 1634 閱讀 5097

深度學習經常需要分割訓練集和驗證集, 所以寫了個可以按比例移動檔案的指令碼

這個指令碼針對的是乙個大訓練集, 其中子資料夾名字是分類裡面是的情況.

'''filedir是訓練集資料夾

targetdir是目標資料夾

rate是移動比例

'''import random, shutil, os

#首先我的目標是生成乙個字典, key是類別資料夾路徑, 對應的value是裡面的名字;

directory_path_list =

file_path_list = {}

picture_number_list =

for i in os.listdir(filedir):

directory_path = os.path.join(filedir, i)

#print(directory_path_list)

#print(picture_number_list)

for i in directory_path_list:

file_path_list[i] = os.listdir(i)

#print(file_path_list)

#計算每個子資料夾需要移走的數量

pick_number_list = (np.array(picture_number_list) * rate).astype(int)

#print(pick_number_list)

for num, (directory, filenames) in zip(pick_number_list, file_path_list.items()):

#print(num, directory)

file_list = [os.path.join(directory, i) for i in filenames]

#print(file_list)

sample = random.sample(file_list, num)

for name in sample:

if os.path.exists(targetdir):

pass

else:

os.mkdir(targetdir)

if os.path.exists(os.path.join(targetdir, (name.split('\\')[0].split('/')[-1]))):

pass

else:

os.mkdir(os.path.join(targetdir, (name.split('\\')[0].split('/')[-1])))

target = os.path.join(targetdir, (name.split('\\')[0].split('/')[-1]))

shutil.move(name, target)

使用的時候

movefile('./imgs/train/', './imgs/val/', 0.3)

python3批量改名

自打有了網課的經驗,老師們各有個的收作業方式.有的用智學網.但有的老師就比較厲害,他們讓學生拍照傳檔案 甚至要改檔名,打包成zip 皿 既然是拍照上傳,拍照肯定是手機的事 我不會安卓,那我們看看在電腦上我們可以做什麼 改名字 用python實現應該不難 打包zip 應該也不難 發布 qq上發給特定的...

Python3 批量修改檔名

1 下圖原檔案包含 itjc8.com 想去掉 2 python 參考 如下 created on 2019年1月29日 author yvon fajin import os os.path time defrename file,keyword file 檔案路徑 keyword 需要修改的檔案...

Python3批量建立Crowd使用者並分配組

背景 遷移 crowd 完成後 之前採用 ldap 方式,新遷移 crowd 不採用 需要批量建立公司所有員工的使用者以及分配組,手工建立以及之前 postman 的方式還是比較低效。python 在 n 多年前入門,寫了幾個爬蟲指令碼後,再也沒用過,借這個機會順便再熟悉下 python 指令碼。歸...