2013-01-21 7 views
7

Ich habe Python-Skripte und Shell-Skripte im selben Ordner, die beide Konfiguration benötigen. Ich habe derzeit eine config.py für meine Python-Skripte, aber ich frage mich, ob es möglich ist, eine einzige Konfigurationsdatei zu haben, die sowohl von Python-Skripten als auch von Shell-Skripten leicht gelesen werden kann.Eine Konfigurationsdatei, die von Python und Shell gelesen werden kann

Kann jemand ein Beispiel für das Format einer Konfigurationsdatei geben, die am besten zum Lesen von Python und Shell geeignet ist.

+0

Ich habe 'YAML' verwendet und empfehle es. Es gibt auch 'Python-Yaml'. –

Antwort

6

ich denke, die einfachste Lösung sein wird:

key1="value1" 
key2="value2" 
key3="value3" 

in Sie müssen nur Datei diese env Quelle und in Python, ist es einfach zu analysieren.

Spaces um =

Für Python nicht erlaubt sind, finden Sie in diesem Beitrag: Emulating Bash 'source' in Python

+0

Ist es wichtig, was das Dateiformat ist, d. H. Cfg, ini etc? – Jimmy

+0

Für Debian, egal. –

1

Dies ist sowohl in Schale und Python gilt:

NUMBER=42 
STRING="Hello there" 

was sonst benötigen Sie?

+0

Ich denke, das OP wünscht eine Methode, die Konventionen nicht bricht. (Z. B. öffne die Datei nicht als Textdatei oder starte einen Subprozess oder rufe 'eval' auf) – JellicleCat

1

configobj Lib kann dabei helfen.

from configobj import ConfigObj 
cfg = ConfigObj('/home/.aws/config') 
access_key_id = cfg['aws_access_key_id'] 
secret_access_key = cfg['aws_secret_access_key'] 
+0

Ich denke, du solltest [] vor ['aws_access_key_id'] hinzufügen. etwas wie cfg [] ['aws_access_key_id'] – Malgi

Verwandte Themen