python 归类文件夹,子文件夹里面文件多个相同名字,移动到相同文件夹名字内
时间: 2023-08-18 13:04:12 浏览: 112
可以使用Python的os和shutil模块来实现这个功能。具体步骤如下:
1. 遍历文件夹及其子文件夹,找到所有重名文件。
2. 对于每个重名文件,获取其父文件夹的名称,作为目标文件夹的名称。
3. 判断目标文件夹是否存在,如果不存在则创建。
4. 将重名文件移动到目标文件夹中。
下面是一个简单的示例代码,可以实现上述功能:
```python
import os
import shutil
# 遍历文件夹及其子文件夹,返回所有重名文件的路径
def find_duplicate_files(dir_path):
file_dict = {}
for root, dirs, files in os.walk(dir_path):
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]
return {k: v for k, v in file_dict.items() if len(v) > 1}
# 将重名文件移动到目标文件夹中
def move_duplicate_files(file_dict):
for file, paths in file_dict.items():
for path in paths:
target_dir = os.path.join(os.path.dirname(path), os.path.splitext(file)[0])
if not os.path.exists(target_dir):
os.makedirs(target_dir)
shutil.move(path, os.path.join(target_dir, file))
# 测试代码
if __name__ == '__main__':
dir_path = '/path/to/your/directory'
file_dict = find_duplicate_files(dir_path)
move_duplicate_files(file_dict)
```
在上面的代码中,需要将`/path/to/your/directory`替换为你需要归类的文件夹的路径。执行完毕后,会将所有重名文件移动到与其同名的文件夹中。
阅读全文