首页 > 解决方案 > 如何将常量添加到 python 或 bash 脚本中文件名中包含的数字?

问题描述

假设我有以下文件:

file1900.txt file1901.txt file1902.txt ... file1998.txt file1999.txt file0.txt file1.txt file2.txt file3.txt ... file19.txt file20.txt

现在我想为2000文件名中包含的数字小于的所有文件添加一个常量1900。下面是我要如何重命名这些文件:

file1900.txt file1901.txt file1902.txt ... file1998.txt file1999.txt file2000.txt file2001.txt file2002.txt file2003.txt ... file2019.txt file2020.txt

有什么好的python脚本吗?如果 Linux bash 脚本更简单,它也可以。

标签: pythonlinuxbash

解决方案


以下 Python 脚本使用正则表达式来匹配您提供的通用模式,以及匹配组中的数字。

如果数字低于 1900,它会向其添加 2000,然后调用os.rename重命名文件。

import re
import os

expression = re.compile(r'file(\d+)\.txt')

for item in os.scandir():
    if item.is_file():
        match = expression.match(item.name)
        if match:
            num = int(match.group(1))
            if num < 1900:
                num += 2000
                new_name = f"file{num}.txt"
                os.rename(item.name, new_name)

推荐阅读