还可以对后缀名进行筛选,即只选取指定类型的文件进行移动。
用到了python自带扩展包shutil,改包用于高阶的文件编辑、移动操作。
shutil.move(old_path,new_path)
文件路径最好是输入绝对引用路径,相对引用路径目前还没试过
import os
import shutil
# 输入变量
EXTENSIONS = []
ROOT = input('请输入根目录') # 根文件夹
ex = input('请输入扩展名') # 根需要提取的文件类型
while ex != 'no':
EXTENSIONS.append(ex)
ex = input('请继续输入扩展名,如果不需要了,则回复:no')
# 主体函数
def selector_file_mover(root, extensions):
files = os.walk(root) # 递归获取所有子文件夹及文件
for dirpath, dirnames, filenames in files:
if dirpath != root: # 除了根文件夹以外的
for name in filenames: # 遍历所有文件
extension = os.path.splitext(name)[1]
if extension in extensions:
old_path = os.path.join(dirpath, name) # 原路径
new_path = os.path.join(root, name) # 迁移后的新路径(根文件夹)
shutil.move(old_path, new_path) # 移动
selector_file_mover(ROOT, EXTENSIONS)