[英]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.