从文本文件中删除特定字符串(非行)Python
我有一个文本文件,里面有两行内容:
<BLAHBLAH>483920349<FOOFOO>
<BLAHBLAH>4493<FOOFOO>
这就是文本文件里唯一的内容。现在我想用Python来修改这个文本文件,把每一行中的BLAHBLAH和FOOFOO去掉。这个任务看起来很简单,但我重新复习了一下文件操作,发现找不到方法来做到这一点。
非常感谢你的帮助!:)
谢谢!
3 个回答
1
考虑一下正则表达式模块 re。
result_text = re.sub('<(.|\n)*?>',replacement_text,source_text)
在<和>之间的字符串会被识别出来。这个过程是非贪婪的,也就是说,它会尽量选择最短的字符串。例如,如果你有"<1> text <2> more text",一个贪婪的解析器会把"<1> text <2>"都选上,但一个非贪婪的解析器只会选"<1>"和"<2>"。
当然,你的replacement_text会是'',而source_text则是文件中的每一行。
5
如果你说的是一个文本文件,而不是HTML、XML或其他格式,那就直接用replace方法吧:
for line in infile.readlines():
cleaned_line = line.replace("BLAHBLAH","")
cleaned_line = cleaned_line.replace("FOOFOO","")
然后把cleaned_line
写入一个输出文件中。
5
f = open(path_to_file, "w+")
f.write(f.read().replace("<BLAHBLAH>","").replace("<FOOFOO>",""))
f.close()
f = open(path_to_input_file, "r")
output = open(path_to_output_file, "w")
output.write(f.read().replace("<BLAHBLAH>","").replace("<FOOFOO>",""))
f.close()
output.close()
更新(保存到另一个文件):