-->

在Python 2.4,如何可以去掉后的字符“;”?(In Python 2.4, how can

2019-07-30 18:28发布

比方说,我解析一个文件,它使用; 作为注释字符。 我不想分析评论。 所以,如果我行看起来是这样的:

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'

Answer 1:

我建议说

line.split(";")[0]

它会给你所有字符的字符串,直到但不包括第一个“;” 字符。 如果不 ”;” 人物存在,那么它会给你的整条生产线。



Answer 2:

只是不通过注释的行拆分,然后拿到的第一个元素如

line.split(";")[0]


Answer 3:

对于Python 2.5或更大,我会使用partition方法:

rtr = line.partition(';')[0].rstrip() + '\n'


Answer 4:

file = open(r'c:\temp\test.txt', 'r')
for line in file:   print
   line.split(";")[0].strip()


Answer 5:

所以你要分割的第一个分号行,之前采取的一切,去掉所有挥之不去的空白,并追加一个换行符。

rtr = line.split(";", 1)[0].rstrip() + '\n'

文档的链接为:

  • 分裂
  • rstrip


Answer 6:

阅读,拆分,剥离,并在所有的python一行加入新行线:

rtr = '\n'.join(line.split(';')[0].strip() for line in open(r'c:\temp\test.txt', 'r'))


Answer 7:

这里是另一种方式:

In [6]: line = "foo;bar"
In [7]: line[:line.find(";")] + "\n"
Out[7]: 'foo\n'


Answer 8:

我还没有与Python测试,但我别的地方使用类似的代码。

import re
content = open(r'c:\temp\test.txt', 'r').read()
content = re.sub(";.+", "\n")


文章来源: In Python 2.4, how can I strip out characters after ';'?