我试图在文件中找到这个字符串:
/home/pi/dew-heater/get-temp.py
替换为
#/home/pi/dew-heater/get-temp.py
但有些情况下它已经读取了#/home/pi/dew-heater/get-temp.py。所以我的程序用双
##
替换它所以它看起来像这样:
##/home/pi/dew-heater/get-temp.py
如何防止双重## ??
with open('/home/pi/dew-heater/getweather.sh', 'r') as fp:
data = fp.read()
typos = data.replace('/home/pi/dew-heater/get-temp.py', '#/home/pi/dew-heater/get-temp.py')
with open('/home/pi/dew-heater/getweather.sh', 'w') as fp:
fp.write(typos)
使用负向后视的正则表达式。
import re
with open('/home/pi/dew-heater/getweather.sh', 'r') as fp:
data = fp.read()
typos = re.sub(r'(?<!#)/home/pi/dew-heater/get-temp\.py', '#/home/pi/dew-heater/get-temp.py', data)
with open('/home/pi/dew-heater/getweather.sh', 'w') as fp:
fp.write(typos)