2016-11-10 23 views
0

私はかなり大きい - 約70K行の.txtファイルを持っています。Pythonを使用してtxtファイル内で文字列を検索

私は文字列 "Can not update"のすべてのインスタンスを見つけるためにPythonを使用しようとしています。

ファイルを開いて「更新できません」のctrl-fを使用すると、即座に見つけられます。しかし、RegExをPython、.find()で使用する場合、またはinの場合、単に文字列を見つけることができません。であれば

with open('C:\PerfUpD.txt', 'r') as file: 

    for line in file: 

      if line.find('Cannot update') != -1: 

       print("Errors found") 

正規表現方法:

f = open('C:\PerfupD.txt', 'r') 

strings = re.findall('Cannot update', f.read()) 

print(strings) 

.find()私は以下で使用している3つのメソッドを参照してください

with open('C:\PerfUpD.txt', 'r') as file: 

    for line in file: 

      if 'Cannot update' in line: 

       print("Errors found") 

私も探してみました"Ca"と何も見つけられませんが、 "C"を検索すると、それはたくさんのインスタンスを見つけます...このサイド・ノートは、この.txtファイルは最初にファイルを.errファイルとして保存するWebサイトから生成されます。私はそれを.txtとして保存します。

私が考えることができるのは、おそらくファイル内のデータが他の形式で生成されていても、開いていると通常のテキストのように見えるということだけです。どんな洞察も大変ありがとう!

+3

せずに正常に動作する必要がありますだと思います。入力ファイルの抽出を投稿できますか?私は、ケースの問題か、非標準であるか、おそらく倍増するスペース文字のいずれかを疑う。 –

+0

ファイルへのパスがオフになっている可能性がありますか?ファイルのすべての行を問題なく印刷できますか? – chatton

+0

私はすぐ外に出たが、できるだけ早くそうするだろう。ちょうど参考に、私はvbaにかなりいいですし、txtファイルの各行をコピーしてセルに貼り付けるマクロを書きましたが、セルには何も印刷しません。 – AssemblyRequired

答えて

0

あなたはおそらくこれを行うことができます:正規表現

0

ため

f = open('your file.txt', 'r+') 
for line in f: 
    if 'Cannot Update' in line: 
     print('error found') 

必要はありません、私はまた、あなたのコードはすべての3つの方法が動作するはずです何の問題

+0

これはコメントです。 – Zety

関連する問題