我打算將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
...
只是為了澄清,您想將圖像從嵌套文件結構移動(而不是複制)到新文件夾,而不是嵌套?
請注意,如果多個圖像共享相同的名稱,這可能會覆蓋圖像!
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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句