自用代码备份
import sys
import re
import ospatterns = [# 00:00:00 - xxxxx re.compile(r"(\d{2}:\d{2}:\d{2})\s+-\s+([^\n\r]*)"), # 00:00 xxxxx re.compile(r"(\d{1,2}:\d{2})\s+([^\n\r]*)")]if len(sys.argv) < 3:print(f'''Usage: pythonScriptFilename.py listTextFileName audioBinaryFileName [last-to]Example: python script.py music.lst music.mp3 01:00:23--{"by mostone"}{"@"}hotmail{"."}com''')quit()listFileName = sys.argv[1]
inputFileName = sys.argv[2]
lastToTime = "" if len(sys.argv)==3 else f"-to {sys.argv[3]}"lines = [] # [ss, to, outputFileName]
print("open list file")
with open(listFileName, "rb") as lst:print("read to buff")txt = lst.read().decode()for ptn in patterns:matches = ptn.findall(txt)if len(matches) != 0: breakif len(matches) == 0:print("No item found in the list file.")quit()ss = ""fn = ""for m in matches:if ss != "":lines.append([f"-ss {ss}", f"-to {m[0]}", fn])ss = m[0]fn = m[1]# last onelines.append([f"-ss {ss}", lastToTime, fn])ptnIndex = re.compile(r"^\d+\.")
addIndex = True if ptnIndex.match(lines[0][2])==None else False
for i in range(1, len(lines)):paras = lines[i - 1]paras[2] = f"\"{f"{i:02g}.{paras[2]}" if addIndex else paras[2]}\".mp3"cmd = f"ffmpeg -nostdin -i \"{inputFileName}\" -c copy {" ".join(paras)}"# print(cmd)os.system(cmd)