如何编写一个Python脚本,用于从’标识码_日期-时间’类型的文件名中批量移除并重命名,只保留日期-时间部分?并告诉我这个脚本怎么用
时间: 2024-10-25 08:11:17 浏览: 17
你可以创建一个Python脚本来处理这个问题,这里是一个基本的示例,我们将使用`os`, `re` 和 `datetime` 模块。首先,确保安装了这些模块(如果尚未安装,可以使用pip install命令):
```python
import os
import re
from datetime import datetime
# 定义函数,接收目录路径作为输入
def rename_files(directory):
# 遍历目录中的所有文件
for filename in os.listdir(directory):
# 使用正则表达式匹配文件名格式
match = re.match(r'^(.*?)_([^_]+)\-(\d{4}-\d{2}-\d{2})', filename)
if match:
# 如果匹配成功,提取标识码、原始日期-时间
prefix = match.group(1)
old_datetime_str = match.group(2) + '-' + match.group(3)
# 将旧的日期时间转换为datetime对象
old_date_time = datetime.strptime(old_datetime_str, '%Y-%m-%d')
# 新的文件名只有日期-时间部分
new_filename = f'{old_date_time.strftime("%Y%m%d%H%M%S")}.txt'
# 构造新的完整文件名
new_fullname = os.path.join(directory, f'{prefix}_{new_filename}')
# 移动并重命名文件
os.rename(os.path.join(directory, filename), new_fullname)
# 使用函数,传入你要操作的文件夹路径
rename_files('/path/to/your/directory')
```
要运行这个脚本,替换`'/path/to/your/directory'`为你的实际文件夹路径,并将它保存为`.py`文件(例如`rename_files.py`),然后在终端或命令提示符下导航到该文件所在的目录,输入`python rename_files.py`运行。
注意:
1. 这个脚本假设文件扩展名为'.txt',如果你的文件有不同的扩展名,需要修改`new_fullname`的构造。
2. 如果有子目录,此脚本只会处理当前指定的目录,不会递归进入子目录。
3. 文件会被移动到原目录,如果你想将文件复制到其他地方,可以将`os.rename`改为`shutil.copy2`。
阅读全文