我的文字有以下架构:
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
但是当我运行它时,它不会打印任何东西。有什么问题?
由于
答案 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