Python文件夹E:\png去重保留长文件名案例
时间: 2023-11-29 12:07:15 浏览: 127
好的,如果你想要对文件夹E:\png中的文件进行去重,并保留文件名比较长的文件,可以按照以下步骤进行操作:
1. 使用 os 模块遍历文件夹中的所有文件,获取文件名、文件大小、修改时间等信息,并存储在一个列表中。
```python
import os
folder_path = "E:\\png"
file_list = []
for root, dirs, files in os.walk(folder_path):
for file in files:
file_path = os.path.join(root, file)
file_size = os.path.getsize(file_path)
file_mtime = os.path.getmtime(file_path)
file_list.append((file, file_size, file_mtime))
```
2. 排序列表,按照文件名长度降序排列。
```python
file_list.sort(key=lambda x: len(x[0]), reverse=True)
```
3. 遍历排序后的列表,如果文件名已经存在于字典中,则删除该文件;否则,将文件名作为字典的键,文件路径作为值存储在字典中。
```python
file_dict = {}
for file_info in file_list:
file_name, file_size, file_mtime = file_info
if file_name in file_dict:
os.remove(os.path.join(folder_path, file_name))
else:
file_dict[file_name] = os.path.join(folder_path, file_name)
```
4. 遍历字典,找到文件名比较长的文件,并将其复制到一个新的文件夹中。
```python
new_folder_path = "E:\\new_png"
if not os.path.exists(new_folder_path):
os.makedirs(new_folder_path)
for file_name, file_path in file_dict.items():
if len(file_name) > 10: # 假设长度超过10的文件名为“比较长的文件名”
new_file_path = os.path.join(new_folder_path, file_name)
shutil.copyfile(file_path, new_file_path)
```
5. 完成去重并保留长文件名的操作。
值得注意的是,这个示例中使用了硬编码的文件夹路径和文件名长度条件,你需要根据实际情况进行修改。
阅读全文