有个文件夹,里面有很多子文件夹,子文件夹里有很多文件。可能存在好几个子文件夹有文件相同,写个python脚本实现如果子文件夹里有文件相同,就合并这些文件夹里的文件并删除空文件夹
时间: 2023-04-01 10:04:53 浏览: 197
你好,这是一个技术问题,我可以回答。可以使用Python的os和shutil模块来实现。首先,可以使用os.walk()函数遍历文件夹和子文件夹,找到所有的文件。然后,可以使用字典来记录每个文件的路径和文件名,如果发现有相同的文件名,则将文件路径添加到字典中对应的列表中。最后,遍历字典中的每个列表,将其中的文件合并到一个新的文件夹中,并删除原来的文件夹。具体实现可以参考以下代码:
```python
import os
import shutil
# 遍历文件夹和子文件夹,找到所有的文件
file_dict = {}
for root, dirs, files in os.walk('path/to/folder'):
for file in files:
file_path = os.path.join(root, file)
if file in file_dict:
file_dict[file].append(file_path)
else:
file_dict[file] = [file_path]
# 合并相同文件名的文件夹里的文件
for file, paths in file_dict.items():
if len(paths) > 1:
new_folder = os.path.join('path/to/new/folder', file)
os.makedirs(new_folder, exist_ok=True)
for path in paths:
shutil.move(path, new_folder)
# 删除空文件夹
for root, dirs, files in os.walk('path/to/folder', topdown=False):
for dir in dirs:
dir_path = os.path.join(root, dir)
if not os.listdir(dir_path):
os.rmdir(dir_path)
```
注意,这只是一个简单的实现,可能存在一些问题,比如文件名相同但内容不同的情况没有考虑到。如果需要更加完善的实现,可以根据具体情况进行修改。
阅读全文