【问题标题】:Compile and split a string from file using python使用python从文件中编译和拆分字符串
【发布时间】:2012-10-28 15:06:12
【问题描述】:

如何从文件的选定行编译字符串,对字符串运行一些操作,然后将该字符串拆分回原来的行到同一个文件中?

我只需要文件的某些行。我无法对文件的其他部分进行操作。我创建了一个类,将这些行与文件分开并在这些行上运行操作,但我认为在包含可用于这些操作的文件部分的单个字符串上运行这些操作会更快...

或者,如果我可以在整个字典上运行这些操作,那也会有所帮助。操作是字符串替换和正则表达式替换。

我正在使用 python 3.3


编辑: 我将在这里更详细地解释这一点,因为我的原始帖子非常模糊(感谢 Paolo 指出这一点)。

例如,如果我想修复一个 SubRipper(.srt 文件),它是一个常见的字幕文件,我会将类似这样的内容作为输入(这是来自一个实际的 srt 文件):

在这里你可以找到正确的例子,在这里提交文件内容会弄乱换行符: http://pastebin.com/ZdWUpNZ2

...然后我只会修复那些具有实际字幕行的行,而不是那些排序号行或隐藏/显示字幕文件的行。所以我编译的字符串可能是:

“他们在那个山脊上。|他们把我们固定住了。”

然后我会对该字符串运行操作。然后我必须将这些行保存回文件。修复这些字幕行后,如何将它们恢复到原始文件中?我可以使用“|”拆分我编译和固定的字符串作为行分隔符并将它们放回原始文件,但我如何确定哪一行放在哪里?

【问题讨论】:

  • 欢迎来到 SO!您的问题不是很清楚,您能否提供一些输入和输出的示例?
  • 例如,如果我想修复一个 SubRipper(.srt 文件),这是一个常见的字幕文件,我会采用这样的输入:1 00:00:25,067 - -> 00:00:27,652 他们在那个山脊上。 2 00:00:27,778 --> 00:00:29,780 他们把我们固定住了。 ...然后我只会修复那些具有实际字幕行的行,而不是那些排序号行或字幕文件的隐藏/显示行。所以我编译的字符串可能是:“他们在那个山脊上。|他们把我们固定住了。”然后我会对该字符串运行操作。然后我必须将这些行保存回文件。
  • 这是一个更好的例子,因为我的评论中删除了换行符:pastebin.com/ZdWUpNZ2
  • @eonhelm 您可以编辑您的问题以添加更多详细信息。

标签: python regex string split python-3.3


【解决方案1】:

您可以使用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')

【讨论】:

  • 谢谢 Paolo,这正是我所需要的 :)
  • @eonhelm 很高兴我能帮上忙 :) 如果您发现此答案有用,您可以将其标记为已接受。有关详细信息,请参阅Accepting Answers: How does it work?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
  • 2013-12-16
  • 1970-01-01
相关资源
最近更新 更多