簡體   English   中英

在Python 2.4中,如何刪除';'之后的字符?

[英]In Python 2.4, how can I strip out characters after ';'?

假設我正在解析一個使用; 作為注釋字符。 我不想解析評論。 因此,如果我一行看起來像這樣:

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()

因此,您將需要在第一個分號上分割行,將其之前的所有內容都取走,去除所有纏結的空格,並添加換行符。

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

鏈接到文檔:

使用python的一行來讀取,拆分,剝離和使用newline合並行:

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")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM