首页 > 解决方案 > 在行中搜索子字符串,然后在文本文件中替换该行

问题描述

我正在尝试编写首先备份文本文件的脚本,然后打开它并搜索具有指定字符串/子字符串的行,然后用新的字符串/行替换该行。

更准确地说,这将是一个包含某些系统选项值的文件,我希望我的脚本找到特定选项并更改它的当前值。

到目前为止,我有这个,但它只会为现有的增加新的价值,它不会取代它。将不胜感激。

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

解决方案


您可以尝试在 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)

推荐阅读