python - 在行中搜索子字符串,然后在文本文件中替换该行
问题描述
我正在尝试编写首先备份文本文件的脚本,然后打开它并搜索具有指定字符串/子字符串的行,然后用新的字符串/行替换该行。
更准确地说,这将是一个包含某些系统选项值的文件,我希望我的脚本找到特定选项并更改它的当前值。
到目前为止,我有这个,但它只会为现有的增加新的价值,它不会取代它。将不胜感激。
import os
import shutil
shutil.copy2('C:/file_location/values.txt', 'C:/file_location/values.txt.backup')
with open('C:/file_location/values.txt') as values:
updated_values = values.read().replace('SystemOption', 'SystemOption = 1')
with open('C:/file_location/values.txt', "w") as new_values:
new_values.write(updated_values)
SystemOption = 0 在我运行脚本后我得到: SystemOption = 0 = 1
脚本运行后想要的效果是:SystemOption = 1
所以我想从0变成1。
问题是文件中的值可以是 0 或 1,这就是为什么我想更改整行以确保脚本后的值为 1。
解决方案
您可以尝试在 python 中使用re 模块
with open('C:/file_location/values.txt') as values:
updated_values = values.read()
updated_values = re.sub('SystemOption = 0', 'SystemOption = 1',updated_values)
推荐阅读
- sql - SQL - 子选择、联合和使用函数
- azure - Kubestone 出现 `Failed to list **v1alpha1.Ethr: ethrs.perf.kubestone.xridge.io' 错误
- python - 使用 numpy 进行条件向量化,如何将列表添加到数据框单元格
- xamarin.forms - 无法以 xamarin 形式显示 admob 实时奖励广告,无论是在调试模式下还是在发布模式下
- git - .gitignore 文件应该位于 IntelliJ 中的什么位置?
- codesys - CoDeSys 2.3 - 收到信号后线圈不会激活
- python - 曼巴无法创建环境
- html - 如何将 CSS 应用到这个 div 类?
- javascript - 从 firebase firestore 获取数组长度
- python - 错误“h”格式需要 -32768 <= number <= 32767