我打算將train檔案下所有子檔案夾(如圖)中的圖片移動train/LUAD到另一個新檔案夾中train_new/LUAD。.jpg每個子檔案夾中都有影像,例如圖片中的第一個TCGA-05-4249-01Z-00-DX1.9fce0297-cc19-4c04-872c-4466ee4024db。

import os
import shutil
count = 0
def moveFiles(path, disdir):
dirlist = os.listdir(path)
for i in dirlist:
child = os.path.join('%s/%s' % (path, i))
if os.path.isfile(child):
imagename, jpg = os.path.splitext(i)
shutil.copy(child, os.path.join(disdir, imagename ".jpg"))
continue
moveFiles(child, disdir)
if __name__ == '__main__':
rootimage = '/content/drive/MyDrive/stat841_final_data/train/LUAD'
disdir = '/content/drive/MyDrive/stat841_final_data/train_new/LUAD'
moveFiles(rootimage, disdir)
但它不起作用。除了新檔案夾中的其他子檔案夾外,我只從最后一個子檔案夾中獲取了影像train_new/LUAD...
uj5u.com熱心網友回復:
只是為了澄清,您想將影像從嵌套檔案結構移動(而不是復制)到新檔案夾,而不是嵌套?
請注意,如果多個影像共享相同的名稱,這可能會覆寫影像!
import pathlib
def move_files(source_folder:pathlib.Path, target_folder:pathlib.Path):
target_folder.mkdir(parents=True, exist_ok=True)
for image_file in source_folder.rglob("*.jpg"): # recursively find image paths
image_file.rename(target_folder.joinpath(image_file.name))
如果您不確定可以先使用復制功能,這樣您就不會丟失原始資料:
import pathlib
import shutil
def move_files(source_folder:pathlib.Path, target_folder:pathlib.Path):
target_folder.mkdir(parents=True, exist_ok=True)
for image_file in source_folder.rglob("*.jpg"): # recursively find image paths
shutil.copy(image_file, target_folder.joinpath(image_file.name))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/372833.html
上一篇:如果未找到影像源且未加載影像,則Java腳本函式顯示訊息代替影像
下一篇:我希望影像擴展到卡片的大小
