使用Python将文件扩展名移动到根文件夹

时间:2017-08-05 05:53:36

标签: python file io

所以我有一个程序可以破坏我的电影收藏,但我正在尝试进一步自动化它。我的目的是搜索每个文件夹并查找“.mkv”文件,如果找到它将其移动到根文件夹,则删除原始文件夹。

我已经开始工作并且它可以正常运行,但我很好奇如何更好地编写它。有没有办法基本上做这个伪代码?

ViewModelFactory

文件夹结构

Adapter

这是我的代码。

loop each folder:
  if folder has files:
    if file extention is '.mkv':
      move file to '/media/movies/'

1 个答案:

答案 0 :(得分:0)

  1. 保留扩展程序到目标路径的映射

    mapping = {'mkv' : '/media/movies/', ... }
    

    关于这一点的好处是将来支持多个扩展。

  2. 通过使用os.path.splitext

  3. 进行拆分来检查扩展程序
  4. 使用shutil.move,您可以将目标指定为目录。这简化了事情

  5. if not os.listdir检查目录是否为空。否则,将抛出错误(如果目录不为空)

  6. mapping = {'mkv' : '/media/movies/', ... }
    for root, dirs, files in os.walk(directory, topdown=False):
        for file in files:
            fullpath = os.path.join(root, file) 
            _, ext = os.path.splitext(fullpath)
            if ext in mapping:
                shutil.move(fullpath, mapping[ext])
    
        for dir in dirs:
            fullpath = os.path.join(root, dir)
            if not os.listdir(fullpath):
                os.rmdir(fullpath)