[英]Filter lines from a text file which contain a particular word
我想編寫一個程序,從我的文本文件中過濾包含單詞“apple”的行,並將這些行寫入一個新的文本文件。
我試過的只是在我的新文本文件中寫了“蘋果”這個詞,而我想要整行。
Use 可以使用列表理解獲取包含“apple”的所有行:
[ line for line in open('textfile') if 'apple' in line]
因此 - 同樣在一個代碼行中 - 您可以創建新的文本文件:
open('newfile','w').writelines([ line for line in open('textfile') if 'apple' in line])
eyquem 是對的:將其作為迭代器並寫入肯定會更快
open('newfile','w').writelines(line for line in open('textfile') if 'apple' in line)
from itertools import ifilter
with open('source.txt','rb') as f,open('new.txt','wb') as g:
g.writelines( ifilter(lambda line: 'apple' in line, f))
使用生成器,這是內存高效且快速的
def apple_finder(file):
for line in file:
if 'apple' in line:
yield line
source = open('forest','rb')
apples = apple_finder(source)
我喜歡閱讀沒有腦損傷的簡單解決方案:-)
對於Python3 - 這是有效且快速的示例
with open('input.txt', 'rb') as file_in:
with open("output.txt", "wb") as file_out:
file_out.writelines(filter(lambda line: b'lines with this text' in line, file_in))
if "apple" in line:
應該工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.