从文本文件python中删除特定字符串(不是行)

时间:2011-08-30 22:18:56

标签: python

我在文本文件中有两行文本文件:

<BLAHBLAH>483920349<FOOFOO>
<BLAHBLAH>4493<FOOFOO>

这是文本文件中唯一的东西。使用python,我想写入文本文件,以便我可以从每一行中带走BLAHBLAH和FOOFOO。这似乎是一个简单的任务,但刷新我的文件操作后,我似乎无法找到一种方法来做到这一点。 非常感谢帮助:)

谢谢!

3 个答案:

答案 0 :(得分:5)

如果它是您所说的文本文件,而不是HTML / XML /其他内容,请使用replace

for line in infile.readlines():
    cleaned_line = line.replace("BLAHBLAH","")
    cleaned_line = cleaned_line.replace("FOOFOO","")

并将cleaned_line写入输出文件。

答案 1 :(得分:3)

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

答案 2 :(得分:1)

考虑正则表达式模块重新。

result_text = re.sub('<(.|\n)*?>',replacement_text,source_text)

识别&lt; &gt; 中的字符串。它是非贪婪的,即它将接受最小可能长度的子串。例如,如果您有“&lt; 1&gt; text&lt; 2&gt; more text”,则贪婪的解析器会接收“&lt; 1&gt; text&lt; 2&gt;” ,但非贪婪的解析器接受“&lt; 1&gt;”“&lt; 2&gt;”

当然,您的replacement_text将是'',source_text将是文件中的每一行。