我正在用python3编写一个脚本来自动重命名文件.但我对被抓获的人群在正则表达式中有问题.

我有这些类型的文件:

test tome 01 something.cbz
test tome 2 something.cbz
test tome 20 something.cbz

我想要有:

test 001 something.cbz
test 002 something.cbz
test 020 something.cbz

我try 了几个代码:

Example 1:

name = re.sub('tome [0]{0,1}(\d{1,})', str('\\1').zfill(3), name)

结果是:

test 01 something.cbz
test 02 something.cbz
test 020 something.cbz

Example 2:

name = re.sub('tome (\d{1,})', str('\\1').lstrip("0").zfill(3), name)

结果是:

test 001 something.cbz
test 02 something.cbz
test 020 something.cbz

推荐答案

在从左侧go 掉零之后,可以对.group(1)的值运行zfill(3):

import re

s = ("test tome 01 something.cbz\n"
            "test tome 2 something.cbz\n"
            "test tome 20 something.cbz")

result = re.sub(
    r'tome (\d+)',
    lambda x: x.group(1).lstrip("0").zfill(3),
    s
)
print(result)

输出

test 001 something.cbz
test 002 something.cbz
test 020 something.cbz

Python相关问答推荐

如何处理必须存在于环境中但无法安装的Python项目依赖项?

Python plt.text中重叠,包adjust_text不起作用,如何修复?

如何使用symy打印方程?

当多个值具有相同模式时返回空

将输入管道传输到正在运行的Python脚本中

如何使用LangChain和AzureOpenAI在Python中解决AttribeHelp和BadPressMessage错误?

如何在Django基于类的视图中有效地使用UTE和RST HTIP方法?

关于Python异步编程的问题和使用await/await def关键字

使用Python更新字典中的值

为什么NumPy的向量化计算在将向量存储为类属性时较慢?'

如何使Matplotlib标题以图形为中心,而图例框则以图形为中心

改进大型数据集的框架性能

计算天数

搜索按钮不工作,Python tkinter

如何使用正则表达式修改toml文件中指定字段中的参数值

以异步方式填充Pandas 数据帧

Beautifulsoup:遍历一个列表,从a到z,并解析数据,以便将其存储在pdf中.

如何在Python 3.9.6和MacOS Sonoma 14.3.1下安装Pyregion

如何在FastAPI中替换Pydantic的constr,以便在BaseModel之外使用?'

递归函数修饰器