Python 如何使用ffmpeg时间戳格式向字符串添加秒数?

Python 如何使用ffmpeg时间戳格式向字符串添加秒数?,python,regex,string,Python,Regex,String,如果此字符串的粗体部分是秒。00:00:00:00.000 我怎样才能在所有这些字符串格式中添加10秒 00:00:00:00.000 00:00.000 00.000 结果应该是: 00:00:00:10.000 00:10.000 10.000 我想到你有两个选择: 查找或编写自己的字符串转换为时间戳格式,然后将其增加10秒并转换回 编写您自己的函数,该函数接受字符串,检查其格式,并添加10秒,必要时将其转换为分钟 使用替换功能: >>> import re >&

如果此字符串的粗体部分是秒。00:00:00:00.000

我怎样才能在所有这些字符串格式中添加10秒

00:00:00:00.000
00:00.000
00.000
结果应该是:

00:00:00:10.000
00:10.000
10.000

我想到你有两个选择:

  • 查找或编写自己的字符串转换为时间戳格式,然后将其增加10秒并转换回

  • 编写您自己的函数,该函数接受字符串,检查其格式,并添加10秒,必要时将其转换为分钟

  • 使用替换功能:

    >>> import re
    >>> strings = [
    ...     '00:00:00:00.000',
    ...     '00:00.000',
    ...     '00.000',
    ... ]
    >>> for s in strings:
    ...     re.sub(r'\d+(?=\.\d+$)', lambda match: str(int(match.group()) + 10), s)                        
    ...
    '00:00:00:10.000'
    '00:10.000'
    '10.000'
    
    • re.sub
      不仅接受替换字符串作为第二个参数,还可以接受替换函数作为第二个参数
    • 函数接收匹配对象作为参数。函数的返回值用作替换字符串
    • \d+(?=\.\d+$)
      模式用于匹配最后一个第二部分(后跟
      .nnn
      小数部分)

    您的输入中没有固定的模式。
    s/00\./10./g
    @Scripting.FileSystemObject任何事情都可以完成。我们必须找到一条路。看看答案!我不明白为什么5个用户把这个问题搁置。这很容易理解。对于这些用户,请阅读答案。显然他明白了。这个问题不需要重写。这是一个完美的答案!不错,但是你能解释一下str(int(match.group())+10)的作用吗。请?@s_vishnu,
    match.group()
    返回匹配的字符串部分
    int(..)+10
    将字符串转换为整数,然后添加10。然后用
    str(…)
    将整数转换回字符串。@s_毗瑟奴,我更新了答案(当你们评论时)。阅读更新的部分也将帮助你理解该部分的含义。谢谢你的反馈。太棒了!非常感谢。