【发布时间】:2019-11-25 18:35:28
【问题描述】:
我有一个包含如下信息的文本文件:
341
00:33:17,72 --> 00:33:24,05
this happen because si se puede
yes we can. Thank you very much.
我正在尝试查找所有时间实例并将时间增加五秒。这是我目前所拥有的:
import re
import string
from datetime import datetime, timedelta
import fileinput
fr = open('project.txt')
text = fr.read()
fr.close()
regex = r"(\d+):(\d+):(\d+),(\d+)"
matches = re.finditer(regex, text, re.MULTILINE)
def changeTimes():
for matchNum, match in enumerate(matches, start=1):
print("Match {matchNum} was found at {start}-{end}: {match}".format(matchNum=matchNum, start=match.start(),
end=match.end(), match=match.group()))
t1 = datetime.strptime(match.group(), "%H:%M:%S,%f") # put your time instead
delta = timedelta(seconds=5) # seconds, minutes, hours, whatever
t1 += delta
print(t1.strftime("%H:%M:%S,%f")[:-4])
with fileinput.FileInput('project.txt', inplace=True, backup='.bak') as file:
for line in file:
print(line.replace(r"(\d+):(\d+):(\d+),(\d+)", t1.strftime("%H:%M:%S,%f")[:-4]), end='')
我在一堆 cmets 下给 changeTimes() 打电话。
我没有收到任何错误,也没有更改文本文件。这是为什么呢?
【问题讨论】:
-
你永远不会打电话给
changeTimes()。此外,您可能希望在text变量中进行所有替换,然后将修改后的text写回文件。 -
我没有看到任何错误,但运行时文本文件也没有任何变化。为什么会这样?
-
这是从文本文件中直接复制/粘贴。现在看起来是这样的。所以我希望它是 :22 --> :29 (+5 秒)
标签: python regex file python-datetime