Python文件夹去重保留长文件名案例
时间: 2023-08-01 08:11:31 浏览: 105
Python实现删除时保留特定文件夹和文件的示例
好的,我可以帮你解答这个问题。
假设你有一个文件夹,里面有一些文件,有些文件名相同,但是文件大小、修改时间等信息不同,你想要去重,但是要保留文件名比较长的文件。你可以按照以下步骤进行操作:
1. 使用 os 模块遍历文件夹中的所有文件,获取文件名、文件大小、修改时间等信息,并存储在一个列表中。
```python
import os
folder_path = "/path/to/folder"
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
file_list.sort(key=lambda x: len(x[0]))
```
阅读全文