0

約 10 文のテキスト ファイルがあります。

My Name is Kerry.
I am a female.
My pet is a cat.
It's name is Ronald.
I hate rats.

私がやりたいことは、このテキスト ファイルから文を読み取り、それfineSearchを私が書いたメソッドに渡すことです。

def fineSearch(wd):
    for line in wd:
        for word in line.strip().split():
            if word.endswith(('ts.','ld')):
                print word

主要

ws = linebylineread('tx.txt')
fineSearch("It's name is Ronald.") # THIS IS FOR DEMO PURPOSE ONLY.

NOTE: I WANT TO READ JUST ONE LINE AT A TIME FROM THE TX.TXT FILE AND PASS IT TO THE METHOD THAT I HAVE WRITTEN.

NOTE: I HAVE NOTICED THAT THE CODE WORKS WHEN I PASS THE WHOLE CHUNK OF TEXT AND NOT A LINE.

渡す fineSearch(ws)と機能しますが、ファイル全体を読み取ります。テキストを印刷すると、次のように表示されます。My Name is Kerry.\n I am a female.\n My pet is a cat\nなど。私が書いたメソッドに1行を送信できるようにしたいだけです。

4

1 に答える 1

2

コードを行で動作させる必要がある場合は、fineSearch(...)関数を次のように変更する必要があります。

def fineSearch(wd):
    for word in wd.strip().split():
            if word.endswith(('ts.','ld.')): # test for ld. at end
                print word

次に、次のコードを使用して、ファイルを 1 行ずつ反復処理できます。

>>> with open('testFile.txt', 'r') as f:
        for line in f:
            fineSearch(line)


rats. # Output. If you wanted Ronald. too, you need to change `ld` in the code to `ld.`

最初のコードは行のリストで動作するようですreadlines(...)readlines(...)、ファイル全体をメモリに読み込みますが、ファイルを 1 行ずつ反復処理したいようです。

于 2013-08-11T14:51:34.643 に答える