从Python中的行中删除标记

时间:2014-08-01 01:35:41

标签: python

我的文字有以下架构:

word1:word2<br />
word3:word4<br />
...

我想删除最后一部分
,并将结果存储在另一个文件中。我尝试了以下内容(仍未将结果保存在其他文件中):

def main():
    fileR=open("test.txt","r")
    for line in fileR:
        if line.endswith('<br />'):
            line=line[:-6]
            print line

但是当我运行它时,它不会打印任何东西。有什么问题?

由于

3 个答案:

答案 0 :(得分:2)

那是因为每一行都以换行符结尾。

您可以像这样修复它(并自动关闭文件):

def main():
    with open("test.txt", "r") as fileR:
        for line in (line.rstrip() for line in fileR):
            if line.endswith('<br />'):
                line = line[:-6]
                print line

答案 1 :(得分:0)

我建议使用正则表达式替换,而不是您当前使用的。

import re

def main():
  fileR=open('test.txt','r')
  for line in fileR:
    line = re.replace(r'<br ?/>$','',line)
    print line

或者,如果您愿意,您可以在单独打印每一行之前立即替换所有这些,因为默认情况下python的正则表达式是全局的。

import re

def main():
  fileR=open('test.txt','r')
  fileR = re.replace(r'<br ?/>$','',fileR)
  for line in fileR:
    print line

答案 2 :(得分:0)

您可以使用正则表达式:

import re
re.sub('<br>', '', line)

例如:

re.sub('<br>', '', 'test<br>text<br>')

给出:

testtext