-1

私はテキストファイルを持っています、

1: 0,0,0,122
2: 2,0,3,333
3: 0,0,0,23

等々。テキストファイルで「0,0,0」パターンを見つけて、指定されたパターンを含む行を除くすべての行を印刷する必要があります。誰かがPythonでこれのコードを教えてもらえますか?

4

3 に答える 3

6

堅牢な方法は次のようになります。

import re
pattern = re.compile(r'0\s*,0\s*,0\s*')
with open(filename) as f:
    for line in f:
            if pattern.search(line):
                    print line

このようにして、スペースのある行がある場合はスキップされます(たとえば、「0,0,0」ではなく「0,0,0」)。

ただし、そのようなことがないと確信している場合、または「0,0,0」[スペースなし]と正確に一致させたい場合は、reモジュールの使用を避けてin演算子を使用するだけです。

with open(filename) as f:
    for line in f:
            if '0,0,0' not in line:
                    print line
于 2012-08-31T09:26:51.883 に答える
0
for line in textfile.split('\n'):
    if '0,0,0' not in line:
        print line
于 2012-08-31T09:20:58.547 に答える
0

コンテキストマネージャを使用してファイルを開きます。ファイルを1行ずつ繰り返します。行にパターンがない場合は、次の行を印刷します。

filename = 'textfile.txt'
pattern = '0,0,0'

with open(filename) as f:
    for line in f:
        if pattern not in line:
            print line

テストされていませんが、動作するはずです。

于 2012-08-31T09:21:23.263 に答える