python 自动分类照片,把所有文件夹,子文件夹,里面有多个相同的文件名字,移动到相同名字的文件夹内
时间: 2024-03-23 14:42:32 浏览: 109
使用python将图片按标签分入不同文件夹的方法
5星 · 资源好评率100%
好的,你可以尝试使用以下代码实现自动分类照片的功能:
```python
import os
import shutil
def classify_photos(root_dir):
# 遍历指定目录下的所有文件和子文件夹
for subdir, _, files in os.walk(root_dir):
# 记录每个文件名出现的次数
file_count = {}
for file in files:
# 获取文件名和后缀
file_name, file_ext = os.path.splitext(file)
# 统计文件名出现的次数
if file_name not in file_count:
file_count[file_name] = 1
else:
file_count[file_name] += 1
# 将多个同名文件移动到同名文件夹
for file_name, count in file_count.items():
if count > 1:
target_dir = os.path.join(root_dir, file_name)
if not os.path.exists(target_dir):
os.mkdir(target_dir)
for file in files:
file_name, file_ext = os.path.splitext(file)
if file_name == file_name:
file_path = os.path.join(subdir, file)
shutil.move(file_path, os.path.join(target_dir, file))
if __name__ == '__main__':
classify_photos('/path/to/root/dir')
```
这段代码跟之前的代码不同之处在于,它首先统计每个文件名在当前目录下出现的次数,然后将出现多次的文件名对应的所有文件移动到同名文件夹中。具体来说,它会先遍历目录下的所有文件和子文件夹,并记录每个文件名出现的次数。然后,对于出现次数大于1的文件名,它会创建同名文件夹(如果不存在),并将该文件名对应的所有文件移动到同名文件夹中。这样就可以将所有多个相同名字的文件都归类到同一个文件夹中了。同样,你需要将`/path/to/root/dir`替换为实际的目录路径。
阅读全文