在 .srt 文件上调用 readlines()
时,我得到了一个包含大量前导和尾随空格的字符列表,如下所示
with open(infile) as f:
r=f.readlines()
return r
我得到了这个列表
['\xef\xbb\xbf1\r\n', '00:00:00,000 --> 00:00:03,000\r\n', "[D. Evans] Now that you've written your first Python program,\r\n",'\r\n', '2\r\n', '00:00:03,000 --> 00:00:06,000\r\n', 'you might be wondering why we need to invent new languages like Python\r\n', '\r\n']
为了简洁起见,我只包含了几个元素。我如何清理这个列表,以便我可以删除所有空白字符并只获取相关元素,如
['1','00:00:00,000 --> 00:00:03,000',"[D. Evans] Now that you've written your first Python program"...]
最佳答案
您可以剥离每一行。如果您正在处理一个大文件,将它作为生成器运行还可以为您节省一些内存。
此外,看起来您正在处理一个 UTF-8 文件,其中前几个字符带有 BOM(这有点傻,或者至少是不必要的),因此您需要以不同的方式打开它。
import codecs
def strip_it_good(file):
with codecs.open(file, "r", "utf-8-sig") as f:
for line in f:
yield line.strip()
关于python从列表中的条目中删除所有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10656607/