4

.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"...]
4

1 に答える 1

11

各行を削除できます。大きなファイルで作業している場合、ジェネレーターとして実行すると、メモリを節約できます。

また、最初の数文字の BOM を含む UTF-8 ファイルで作業しているように見えるので (これはばかげているか、少なくとも不要です)、別の方法で開く必要があります。

import codecs

def strip_it_good(file):
    with codecs.open(file, "r", "utf-8-sig") as f:
        for line in f:
            yield line.strip()
于 2012-05-18T16:51:39.437 に答える