这个脚本发布在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"
。所以也要检查文件路径和文件权限。