2017-01-21 4 views
0

Diese Frage wurde zwar schon früher gestellt, aber ich bekomme keine relevanten Ergebnisse.Schreiben und lesen Sie Testdateien im Wörterbuchformat

Ich mache eine Konfigurationsdatei (Textdatei). Diese Datei ist wie ein Wörterbuch, sodass Benutzer Daten problemlos ändern können. Jetzt möchte ich nur den benötigten Schlüssel holen oder in einigen Fällen einen neuen Schlüssel und Wert auf systematische Weise anhängen.

Meine Textdatei sieht wie folgt aus

MODULES={ 
    button:C:\Users\Dell\Desktop\hello.py, 
    app1:C:\Users\Dell\Desktop\smarty.py, 
} 

USER={ 
    user1=password, 
    user2=password, 
    user1=password, 
} 

ich diese Datei mit Python lesen möchten, und den Schlüssel bei einer Abfrage:

Zum Beispiel:

>> MODULES["button"] 
C:\Users\Dell\Desktop\hello.py 
+6

"Ich mache eine Konfigurationsdatei", warum nicht json verwenden? –

+1

oder: warum nicht 'yaml' verwenden? oder ein anderes existierendes Format? –

+2

@hiro weil [** 'json' **] (https://docs.python.org/2/library/json.html) standardmäßig unterstützt wird –

Antwort

3

Der bequemste Weg zu Das zu lösende Problem besteht darin, das Format der Konfigurationsdatei zu ändern. Wie in den Kommentaren erwähnt, wird JSON in Python standardmäßig unterstützt.

Daher können Sie so etwas wie dieses config.json

{  
    "MODULES": { 
      "button": "C:\Users\Dell\Desktop\hello.py", 
      "app1": "C:\Users\Dell\Desktop\smarty.py", 
      } 

    "USER" = { 
      "user1" = password, 
      "user2" = password, 
     } 
} 

verwenden können Sie die json Modul verwenden, um die Datei zu bearbeiten.

import json 

with open('config.json', 'r') as config_file:  
    data = json.load(config_file) 

print(data["MODULES"]["button"]) 
# make some changes to `data` 

with open('config.json', 'w') as config_file:  
    json.dump(data, config_file)