Python|批量移动文件并修改目录层级

前面说过,最近在做档案的迁移。从其中一个系统导出的目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|-- 签报
|-- 签报〔2022〕1号
|-- 正文
|-- 关于XXX的请示.DOC
|-- 附件
|-- 附件1.DOC
|-- 附件2.PDF
|-- 表单.HTML
|-- 签报〔2022〕2号
|-- 正文
|-- 关于XXX的请示.DOC
|-- 附件
|-- 附件.DOC
|-- 表单.HTML
……

这种目录结构在迁移到新的系统中时阅读起来就比较麻烦,用户希望取消“附件”、“正文”的目录结构,把正文、附件、表单直接放到同一级目录下:

1
2
3
4
5
6
7
8
9
10
11
|-- 签报
|-- 签报〔2022〕1号
|-- 关于XXX的请示.DOC-- 附件
|-- 附件1.DOC
|-- 附件2.PDF
|-- 表单.HTML
|-- 签报〔2022〕2号
|-- 关于XXX的请示.DOC
|-- 附件.DOC
|-- 表单.HTML
……

源码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import os  

def move_and_delete(directory):
# 遍历目录及其子目录
for dirpath, dirnames, filenames in os.walk(directory):
# 检查文件夹名称是否为"附件"或"正文"
if os.path.basename(dirpath) in ["附件", "正文"]:
# 移动文件到上一级目录
for filename in filenames:
file_path = os.path.join(dirpath, filename)
new_file_path = os.path.join(os.path.dirname(dirpath), filename)
os.rename(file_path, new_file_path)
# 删除目标文件夹
os.rmdir(dirpath)

# 要处理的目录
directory = r'D:\2021年旧公文系统'

# 开始处理
move_and_delete(directory)

商业转载请联系作者获得授权,非商业转载请注明出处。

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者

Python|批量移动文件并修改目录层级
http://hncd1024.github.io/2023/12/08/Python_FileMove/
作者
CHEN DI
发布于
2023-12-08
许可协议