如何从文件的选定行编译字符串,对字符串运行一些操作,然后将该字符串拆分回原始行到同一个文件中?
我只需要文件的某些行。我不能对文件的其他部分进行操作。我创建了一个将这些行与文件分开并在这些行上运行操作的类,但我认为在包含可在这些操作中使用的文件部分的单个字符串上运行这些操作会更快...
或者,如果我可以在整个字典上运行这些操作,那也会有所帮助。这些操作是字符串替换和RegEx替换。
我正在使用python 3.3
编辑: 我将在这里更详细地解释这一点,因为我原来的帖子太模糊了(感谢Paolo指出这一点)。
例如,如果我想修复SubRipper(.srt文件),这是一个常见的字幕文件,我会把这样的东西作为输入(这是来自实际的srt文件):
在这里你可以找到正确的例子,在这里提交文件内容混淆新行: http://pastebin.com/ZdWUpNZ2
...然后我只修复那些具有实际字幕行的行,而不是那些订购号行或那些隐藏/显示字幕文件的行。所以我编译的字符串可能是:
“他们在那个山脊上。|他们把我们钉死了。”
然后我会对该字符串运行操作。然后我必须将这些行保存回文件。在修复后,如何将这些字幕行恢复到原始文件中?我可以使用“|”分割我的编译和固定字符串作为行分隔符并将它们放回原始文件,但我怎么能确定哪一行在哪里?
答案 0 :(得分:3)
您可以使用pysrt
编辑SubRip文件:
from pysrt import SubRipFile
subs = SubRipFile.open('some/file.srt')
for sub in subs:
# do something with sub.text
pass
# save changes to a new file
subs.save('other/path.srt', encoding='utf-8')