繁体   English   中英

根据名称将多个文件从单个文件夹移动到多个文件夹

[英]Moving multiple files from a single folder to multiple folders according to their name

我有一个文件夹,其中包含以下类型的文件-
拳击手_1.jpg
拳击手_2.jpg
american_bulldog_120.jpg
american_bulldog_119.jpg
这里每个字母名称代表动物的品种,数字代表其数量。
我想从文件名的名称创建文件夹,然后将文件放在各自的文件夹中。
我希望文件夹名称只是字母名称。

我已经设法从文件名创建文件夹。 首先,我从文件名中删除了数字、下划线和扩展名,然后将它们放在一个列表中。 然后我从列表中创建了文件夹。

  files = os.listdir("data_path")
  import re
  cleaned_files = []
  for each in files: # To remove the digits and underscore.
     cleaned_files.append(re.sub(r'[0-9\_]','',each))

  new_files = [] # To remove the .jpg extension
  for each in distinct_files:
     new_files.append(re.sub('.jpg','',each))

  from collections import OrderedDict # To make list distinct 
  distinct_files = list(OrderedDict.fromkeys(new_files))

  path_dir = 'Modified_Dataset_Path' #Creation of folders
  for folder in distinct_files:
     os.mkdir(os.path.join(path_dir,folder))

我无法从这里开始,如何将文件放置到相应的文件夹中。 也欢迎任何其他方法来解决此问题。 PS- 如果有人想尝试测试他们的方法,该数据集是Oxford IIIT Pet 数据集

因此,您可以对每个文件进行相同的处理,然后将其移动到该目录。


cleaned_files = []
new_files = []
for f in files
    cleaned_files=(re.sub(r'[0-9\_]','',f))
    new_files=(re.sub('.jpg','',cleaned_files))
    shutil.copy(os.path.join(data_path,f),os.path.join(Modified_Dataset_Path,new_files))

data_path 是原始文件所在的目录,Modified_Dataset_Path 是所有新目录所在的目录。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM