Python 2.4 で、「;」の後の文字を削除するにはどうすればよいですか?
-
19-09-2019 - |
質問
ファイルを解析しているとします。 ;
コメント文字として。コメントを解析したくない。したがって、行が次のようになったとします。
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の一つの行に改行して行を結合
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'
私は、Pythonでこれをテストしていませんが、私は他の同様のコードを使用しているます。
import re
content = open(r'c:\temp\test.txt', 'r').read()
content = re.sub(";.+", "\n")
所属していません StackOverflow