从python编辑prototxt文件

从python编辑prototxt文件,python,caffe,pycaffe,Python,Caffe,Pycaffe,我想用python编辑prototxt文件。我只需要将源代码从一个目录更改为另一个目录。有没有一个简单的方法可以做到这一点,不必重新定义网络和重写整个文件 例如,在我的prototxt文件中 layer { name: "data" type: "Data" top: "data" top: "label" include { phase: TRAIN } transform_param { mirror: true crop_size: 22

我想用python编辑prototxt文件。我只需要将源代码从一个目录更改为另一个目录。有没有一个简单的方法可以做到这一点,不必重新定义网络和重写整个文件

例如,在我的prototxt文件中

layer {
  name: "data"
  type: "Data"
  top: "data"
  top: "label"
  include {
    phase: TRAIN
  }
  transform_param {
    mirror: true
    crop_size: 227
    mean_file: "data/ilsvrc12/imagenet_mean.binaryproto"
  }
  data_param {
    source: "examples/imagenet/ilsvrc12_train_lmdb"
    batch_size: 256
    backend: LMDB
  }
}
我只想更改字段“source”。这是一个相对较长的net def(这里发布的只是一个典型的示例,我有自己的net def),因此不必像caffe示例那样手动输入每个字段,这将节省我很多时间


谢谢

我想如果您使用操作系统的命令行,您会更轻松。UNIX(Linux)有很好的编辑器(sed、awk等)。让操作系统为您打开、更改和重写文件

您需要生成的命令将找到源:,并用您提供的字符串替换该行的其余部分

适用的Python包括:

import os
os.system("<your command>")
导入操作系统
操作系统(“”)

另请参见SO问题。

您必须读取/解析文件,进行更改,然后将其全部写回。在适当位置修改文件意味着您需要在删除文件时写入相同数量的字符,否则可能会损坏整个文件。谢谢,这是我可能要做的,我可以从终端使用gedit编辑它们,因此这可能是最简单的解决方案