[英]find and replace string in python
我正在寻找使用python中的正则表达式替换文件中的字符串。 我想出的代码是
import re
s=open('C:/Users/Tamal/Desktop/py_regex_sample.txt', 'r')
re.sub(r'(\w)+\s(\w)+', r'<fname>\1</fname>\n<sname>\2</sname>', s, 0, flags=re.I)
s.close()
该文件包含两行,包含两个名称
"John Hammond
Joey Mercury"
但是它显示了一个错误。 我究竟做错了什么?
您不需要re来替换字符串。
您可以像这样使用replace()
:
>>> s = "This is a string."
>>> s = s.replace("This", "That")
>>> print(s)
That is a string.
现在,如果您不知道需要替换什么,则可以手动解析整个字符串或使用re查找。
您输入的是错误,因为您要将整个文件作为第三个参数传递,而re.sub()
不接受。 第三个参数应该是string
而不是文件。 因此,它会导致错误。
如果要进行inplace
更换,则应尝试此操作
import re,fileinput
for line in fileinput.input('input_file.txt', inplace=True):
print(re.sub(r'(\w+)\s(\w+)', r'<fname>\1</fname>\n<sname>\2</sname>', line.strip("\n"), flags=re.I))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.