使用该lin的模式替换整条线

2024-09-27 21:28:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个文本文件:

#define PUBLICATION_URI_VALUE_DELL                          "http://downloads.dell.com/redfish/bmc/schemas"
#define MAX_NUM_JSON_SCHEMAS                263
#define MAX_JSONFILE_LENGTH                 64
#define ODATA_CONTEXT_VALUE_JSONSCHEMA_FILE_COLLECTION          METADATA_URI "#" JSONSCHEMA_URISEGMENT
#define ODATA_TYPE_VALUE_JSONSCHEMA_FILE_COLLECTION             "#JsonSchemaFileCollection.JsonSchemaFileCollection"
#define NAME_VALUE_JSONSCHEMA_FILE_COLLECTION                   "Schema Repository"

现在我的问题是如何在运行时替换这行#define MAX_NUM_JSON_SCHEMAS 263中的263

我试过这个:

import os
import sys

old="#define MAX_NUM_JSON_SCHEMAS"
with open("MetadataProvider.h","r+") as myfile:
    for line in myfile:
        if old in line:
            myfile.write(line.replace(line,"#define MAX_NUM_JSON_SCHEMAS 356"))

Tags: importjsonvaluelineurimyfileschemasnum
1条回答
网友
1楼 · 发布于 2024-09-27 21:28:58

使用不同的处理程序读取和写入文件

例如:

with open(r"MetadataProvider.h", "r") as infile:
    res = []
    for i in infile:
        if i.strip().startswith("#define MAX_NUM_JSON_SCHEMAS"):
            res.append("#define MAX_NUM_JSON_SCHEMAS        356")
        else:
            res.append(i.strip())

with open(r"MetadataProvider.h", "w") as outfile:
    for i in res:
        outfile.write(i+"\n")

相关问题 更多 >

    热门问题