python实现文件批量重命名。要求:文件夹不改名;每个文件的后缀名不变;名字改为该文 件的创建或修改日期(注意文件名的合法字符);如果多个文件重名,可以延长名字 (例如添加一个长度为n 的随机字符串)
时间: 2024-01-26 18:03:56 浏览: 150
好的,你可以使用Python的os模块和datetime模块来实现文件批量重命名。
下面是一个简单的示例代码,实现了你的要求:
```python
import os
from datetime import datetime
import random
import string
def batch_rename_files(folder_path, random_string_length=0):
"""
批量重命名文件,名字改为该文件的创建或修改日期,如果有重名的文件,可以添加一个随机字符串
:param folder_path: 文件夹路径
:param random_string_length: 随机字符串长度,默认为0
"""
for filename in os.listdir(folder_path):
# 获取文件的创建时间或修改时间
full_path = os.path.join(folder_path, filename)
if os.path.isfile(full_path):
timestamp = os.path.getmtime(full_path)
else:
continue
# 格式化时间
date_time = datetime.fromtimestamp(timestamp)
new_name = date_time.strftime("%Y-%m-%d %H-%M-%S")
# 添加随机字符串
if random_string_length > 0:
random_string = ''.join(random.choices(string.ascii_lowercase + string.digits, k=random_string_length))
new_name += '-' + random_string
# 拼接新的文件名
file_extension = os.path.splitext(filename)[1]
new_filename = new_name + file_extension
new_full_path = os.path.join(folder_path, new_filename)
# 重命名文件
os.rename(full_path, new_full_path)
if __name__ == '__main__':
folder_path = 'your_folder_path'
batch_rename_files(folder_path, random_string_length=5)
```
你只需要将 `your_folder_path` 替换成你想要重命名文件的文件夹路径,然后运行这个 Python 脚本即可。
阅读全文