jojolafrite处理字幕的Python脚本不起作用



这个脚本发布在interweb上,目的是在.srt字幕文件中插入"静音行",这样字幕就不会停留太久,如图所示。我不知道如何传递字幕文件名;总是得到:

"类型错误:不支持%的操作数类型:'NonType'和'tuple'"

当我在模块或之后使用文件名运行时

"请提供字幕文件以处理"

如果我不这样做。我是不是犯了一个愚蠢的错误?干杯


#! /usr/bin/python
import sys;
# Patching SRT files to make them readable on Samsung TVs
# It basically inserts blank subtitles when silence should occur.
seqNo=1
try:
    subs = open(sys.argv[1])
except:
    print "Please provide subtitle file to process"
    sys.exit(1)
while True:
    srtSeqNo=subs.readline();
    try:
        begin,arrow,end=subs.readline().rstrip('nr').split(" ")
    except:
        break
    srtText = subs.readline();
    again = subs.readline();
    while len(again.strip('nr')) > 0:
        srtText = srtText + again
        again = subs.readline()
    print "%dn%s --> %sn%s" % (seqNo, begin, end, srtText)
    seqNo = seqNo + 1
    print "%dn%s --> %sn%sn" % (seqNo, end, end, "   ")
    seqNo = seqNo + 1

照看sys.argv

您必须以SRT文件的完全限定路径作为参数来执行脚本。类似于:

python script.py /home/user/folder/foo.srt

脚本运行正常。这对我有效:

python main.py torchwood.srt

在这里,我的torchwood.srt文件位于main.py文件所在的同一目录中。如果字幕文件不在同一目录中,您可以使用它的完整路径。

必须传递具有有效内容的现有.srt文件。如果找不到文件或无法打开文件,则会显示"Please provide subtitle file to process"。所以也要检查文件路径和文件权限。