python批量给前18位字符串重复的文件命名
时间: 2024-09-19 19:17:43 浏览: 44
python入门到精通-20-批量重命名之添加字符串.ev4.rar
在Python中,你可以使用os模块的rename()函数来批量处理文件名,特别是当需要去掉重复前缀或者对重复部分进行某种操作的时候。假设你有一个目录,里面包含一些文件名,比如"0001_data.txt", "0001_more_info.txt", "0002_newfile.txt"等,前18位都是相同的。
首先,你需要获取每个文件名的前18位,并确定哪些是重复的。可以创建一个集合(set)存储已经遇到过的前18位字符串,然后遍历所有文件,检查它们的前18位是否已经在集合中。如果不在,就保留原名称;如果在,则添加一个计数器到文件名中,例如"0001_1_data.txt", "0001_2_more_info.txt", "0002_newfile.txt"。
以下是一个简单的示例:
```python
import os
# 假设目录路径是dir_path
dir_path = 'your_directory'
# 创建一个空集合来保存前18位的唯一值
prefix_set = set()
# 遍历目录下的所有文件
for filename in os.listdir(dir_path):
# 获取文件名的前18位
prefix = filename[:18]
# 如果前缀尚未见于集合中,将其加入并保留原始名称
if prefix not in prefix_set:
prefix_set.add(prefix)
new_filename = filename
else:
# 否则,增加一个计数器
count = len(prefix_set) + 1
new_filename = f"{prefix}_{count}{filename[18:]}"
# 更新文件名并重命名
old_file_path = os.path.join(dir_path, filename)
new_file_path = os.path.join(dir_path, new_filename)
os.rename(old_file_path, new_file_path)
阅读全文