2017-07-12 8 views
0

私は読める非常に良い方法を見つけたオリジナルの設定ファイルを持っています。このように:ファイルへのPythonの書き込み辞書

myDict = {} 
cfg = file(configFile, 'r').readlines() 
myDict = eval('\n'.join(cfg)) 

これは私のファイルの内容をmyDictに非常にきれいに取得します。しかし、内容を変更して新しい変更されたファイルを作成/書き込むシンプルな方法は何ですか?おかげ

+5

Nooo .... 'eval(..) 'を使用しないでください...あなたのプログラムに誰かが任意のコードを簡単にハックすることができます。 –

+2

@WillemVanOnsem私のために泣いてくれてありがとう。 –

+0

とにかく改行で結びつけているのであれば、 'f.read()'を呼び出すことができます。また、 'file(...)'とは何ですか?オープン(...)を意味しましたか? –

答えて

-2

あなたは(evalののセキュリティホールを見下ろす)、これを試みることができる:

myDict = {} 
with open(configFile, 'r+') as file: 
    cfg = file.readlines() 
    myDict = eval('\n'.join(dgf)) 
    myDict['new key'] = 'new value' 

    file.seek(0) 
    file.write(str(myDict)) #format this if you want, str() is raw 
    file.truncate() 

上記、ファイルを開く(あなたのコードごとなど)辞書として内容を評価し、新しいを追加する必要があります値(辞書を変更するだけ)を入力し、元のファイルを上書きします。

関連する問題