簡體   English   中英

過濾文本文件中包含特定單詞的行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM