2016-06-17 5 views
-4

私はpythonを使ってprototxtファイルを編集したいと思います。ソースをあるディレクトリから別のディレクトリに変更するだけです。ネットを再定義してファイル全体を書き直す必要がないように、簡単な方法がありますか?例えば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 
    } 
} 

を持っていると私は唯一のフィールド「ソース」を変更したいです。これは比較的長いネットデフからのものです(ここに掲載されているのは典型的な例ですが、私は自分のネットデフを持っています)ので、手作業ですべてのフィールドを入力する必要はありません。

ありがとう

+0

ファイルを読み取り/解析し、変更を加えてからすべて書き戻す必要があります。ファイルを適切な位置に変更すると、削除する文字数とまったく同じ文字数を書き込む必要があるか、ファイル全体が破損する危険性があります。 –

答えて

1

オペレーティングシステムのコマンドラインを使用したほうが簡単だと思います。 UNIX(Linux)には良いエディタ(sed、awkなど)があります。 OSのファイルハンドルを開いて変更し、書き直します。

ビルドする必要があるコマンドは、ソース:です。残りの行は、指定した文字列に置き換えてください。

適用Pythonが含まれています:

import os 
os.system("<your command>") 

をまたthis SO質問を参照してください。

+0

ありがとう、それは私がやることです、私は端末からgeditで編集できるので、これは最も簡単な解決策かもしれません – jerpint

関連する問題