在这种情况下,我该如何替换(替换)单词

时间:2018-06-22 09:23:26

标签: python regex

我正在研究Tensorflow项目并构建对象检测API包装器。 我要做的是用一些值替换文件"PATH_TO_BE_CONFIGURED/mscoco_train.record"的这一特定部分,同时保留其他所有内容。您如何使用re模块来做到这一点? 有几个与此类似的块,因此我需要从train_input_reader指定范围。 我尝试了各种方法,但没有一个能正常工作,所以我问。

train_input_reader {
  label_map_path: test
  tf_record_input_reader {
    input_path: "PATH_TO_BE_CONFIGURED/mscoco_train.record"
  }
}

1 个答案:

答案 0 :(得分:0)

您可以使用re.sub

re.sub(r'input_path:\s+"[^"]*"', 'input_path: "{}"'.format(new_path), s)

例如

>>> import re
>>> new_path = "new_path"
>>> s="""train_input_reader {
...   label_map_path: test
...   tf_record_input_reader {
...     input_path: "PATH_TO_BE_CONFIGURED/mscoco_train.record"
...   }
... }"""
>>> s = re.sub(r'input_path:\s+"[^"]*"', 'input_path: "{}"'.format(new_path), s)
>>>
>>> print(s)
train_input_reader {
  label_map_path: test
  tf_record_input_reader {
    input_path: "new"
  }
}
>>>