単語が読み込まれたファイルがあり、たとえば、メモリ効率を高めるために「M」で始まるものだけを読みたいとします。これを行うことはできますか、それともファイル全体を読み込んで後でフィルタリングする必要がありますか?
ありがとう
ファイルが改行で区切られた単語のリストである場合、次のことができます
words_starting_in_M = []
with open(filepath) as wordsfile:
for line in wordsfile:
if line.startswith("M"):
words_starting_in_M.append(line.rstrip())
ファイル全体を読み取る必要がありますが、すべてをメモリに保持することを避けるため、メモリ効率が向上します。
ファイル全体を読み取る必要があるのは、単語を解析して M があるかどうかを調べる唯一の方法だからです。
あなたがやりたいことをすることができます:
words_starting_in_M = []
with open(filepath) as myfile:
for line in myfile:
for word in line.split():
if word.startswith("M"):
words_starting_in_M.append(word.rstrip())
このコードは 1 行を読み取ります (単語が 2 行以上に分割されていないと仮定します)。次に、各行をスペースで分割し、words_starting_in_M に M で始まる単語を追加します。