2024-10-03 06:32:44 发布
网友
如果这是以前发布的,我真的很抱歉,但我根本找不到网上的答案。
我正在阅读字幕,希望排除主题歌/结尾。它们在一行开头用“?”符号表示。我试图使用ASCII值和chr()命令,但无法使其工作。
如果有人能张贴一种方法来查看“?”符号在字符串中的时间,那将是非常感谢的。
谢谢你的时间。
迭代输入副标题文件中的行,并将那些不以^{cd1>}(~)开头的行写入输出文件。
对于Python 2和3:
with open('file.srt') as subs, open('outfile.srt', 'w') as out: for line in subs: if not line.startswith(u'\u266a'): out.write(line)
如果要查找任何地方包含~ ~的行,请使用^{{cd2>}:
当然,这将删除以~”开头的所有行,而不仅仅是歌曲结尾中的行。而且它甚至可能不有效,因为不同的字幕文件格式的作用不同。要仅删除这些字幕行,需要了解播放主题歌的时间范围,这需要了解字幕文件格式,因为时间代码表示形式不同。例如,SRT文件包含多行,用于每个字幕,如:
所以现在您需要检测以~ ~开头的行,然后备份并删除正在进行的2行,然后删除以下行。我不是文件格式专家。。。。第一行看起来像序列号,我不知道它是否必须是连续的。在这种情况下,通常更容易将整个文件读入列表,然后处理列表。
不管怎样,现在您知道如何检测以特定unicode字符开头的行,这样您就可以继续了。
def find_music_in_string(my_string): for char in my_string: if ord(char) == 9834: print 'i have found you ' + char find_music_in_string(u'\u266a')
ord()获取char的int值,其值为9832。在
ord()
“✓”不在ASCII字符集中。它使用IBM PC上13位(0x0D)的字体。在unicode字符集中,它位于0x266A位置,因此在Python中可以使用u"\u266A"。如果指定源文件的编码,则可以在字符串中包含任何字符:
u"\u266A"
# -*- coding: utf-8 -*- print("♪")
请注意,还有一个问题:如果输出代码页无法对该字符进行编码,python将引发异常:
print("\u266A")
UnicodeEncodeError: 'charmap' codec can't encode character '\u266a' in position 0: character maps to <undefined>
如果您想打印到控制台,在Python3.4(可能更早,但在Python2.7中没有),您可以在启动程序之前更改代码页(例如executechcp 65001)来解决这个问题。在
chcp 65001
迭代输入副标题文件中的行,并将那些不以^{cd1>}(~)开头的行写入输出文件。
对于Python 2和3:
如果要查找任何地方包含~ ~的行,请使用^{{cd2>}:
^{pr2}$当然,这将删除以~”开头的所有行,而不仅仅是歌曲结尾中的行。而且它甚至可能不有效,因为不同的字幕文件格式的作用不同。要仅删除这些字幕行,需要了解播放主题歌的时间范围,这需要了解字幕文件格式,因为时间代码表示形式不同。例如,SRT文件包含多行,用于每个字幕,如:
^{pr3}$所以现在您需要检测以~ ~开头的行,然后备份并删除正在进行的2行,然后删除以下行。我不是文件格式专家。。。。第一行看起来像序列号,我不知道它是否必须是连续的。在这种情况下,通常更容易将整个文件读入列表,然后处理列表。
不管怎样,现在您知道如何检测以特定unicode字符开头的行,这样您就可以继续了。
ord()
获取char的int值,其值为9832。在“✓”不在ASCII字符集中。它使用IBM PC上13位(0x0D)的字体。在unicode字符集中,它位于0x266A位置,因此在Python中可以使用
u"\u266A"
。如果指定源文件的编码,则可以在字符串中包含任何字符:请注意,还有一个问题:如果输出代码页无法对该字符进行编码,python将引发异常:
print("\u266A")
UnicodeEncodeError: 'charmap' codec can't encode character '\u266a' in position 0: character maps to <undefined>
如果您想打印到控制台,在Python3.4(可能更早,但在Python2.7中没有),您可以在启动程序之前更改代码页(例如execute
chcp 65001
)来解决这个问题。在相关问题 更多 >
编程相关推荐