所以我有一个程序可以破坏我的电影收藏,但我正在尝试进一步自动化它。我的目的是搜索每个文件夹并查找“.mkv”文件,如果找到它将其移动到根文件夹,则删除原始文件夹。
我已经开始工作并且它可以正常运行,但我很好奇如何更好地编写它。有没有办法基本上做这个伪代码?
ViewModelFactory
文件夹结构
Adapter
这是我的代码。
loop each folder:
if folder has files:
if file extention is '.mkv':
move file to '/media/movies/'
答案 0 :(得分:0)
保留扩展程序到目标路径的映射
mapping = {'mkv' : '/media/movies/', ... }
关于这一点的好处是将来支持多个扩展。
通过使用os.path.splitext
使用shutil.move
,您可以将目标指定为目录。这简化了事情
if not os.listdir
检查目录是否为空。否则,将抛出错误(如果目录不为空)
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)