コメント文字として;
を使用するファイルを解析しているとしましょう。コメントを解析したくありません。したがって、行が次のようになっている場合:
example.com. 600 IN MX 8 s1b9.example.net ; hello!
これ以外の文字を取り除く簡単でエレガントな方法はありますか?
rtr = ''
for line in file:
trig = False
for char in line:
if not trig and char != ';':
rtr += char
else:
trig = True
if rtr[max(rtr)] != '\n':
rtr += '\n'
と言ってお勧めします
line.split(";")[0]
これにより、最初の「;」までのすべての文字列が得られます。キャラクター。 「;」がない場合文字が存在する場合、行全体が表示されます。
コメントで行を分割し、最初の要素を取得するだけです
line.split(";")[0]
Python 2.5以上の場合、 partition
メソッドを使用します。
rtr = line.partition(';')[0].rstrip() + '\n'
file = open(r'c:\temp\test.txt', 'r')
for line in file: print
line.split(";")[0].strip()
Pythonの1行で、改行を読み取り、分割、削除、および結合します。
rtr = '\n'.join(line.split(';')[0].strip() for line in open(r'c:\temp\test.txt', 'r'))
別の方法を次に示します。
In [6]:line = "foo; bar" In [7]:line [:line.find( ";")] + "\ n" Out [7]: 'foo\n'