2017-07-12 4 views
0

"testing.txt"というテキストファイルがあります。 find()を使って文字列を見つけようとすると、その文字列が私に与えられます。私はそれを2回目にすると、文字列がファイルにないことを私に伝えます。Pythonを使用してテキストファイル内の同じ文字列を検索しようとすると、2つの異なる結果が返されます

>>> blast = open("testing.txt") 
>>> blast.read().find("AC068207.60") 
25 
>>> blast.read().find("AC068207.60") 
-1 

コードの最初の行でblastを再ロードすると、この問題がリセットされます。 私は何が間違っていますか?

答えて

7

最初の読み取りでファイルイテレータが使い果たされ、2番目の読み取りが空の文字列を返すため、findは-1を返します。

あなたはすべての上にファイルを読み取るために、ファイルの先頭に求めることができます:ファイルオブジェクトをcloseすることを忘れないでください、サイドノートでは

>>> blast.read().find("AC068207.60") 
25 
>>> blast.seek(0) 
>>> blast.read().find("AC068207.60") 

+1

ありがとうございました。 –

+1

ようこそStackOverflowへ! **あなたの問題を解決する**答えを受け入れてください(その左側のチェックマークを押してください)。不安を避けるために、ある時間が経過した後にのみこれを行うことができます。 Btw、「ありがとう!」のようなコメントスペースと読書時間を節約することは一般的にはお勧めしません。 – Alfe

関連する問題