2013-04-13 26 views
8

Ich entwickle ein Programm mit einem Einstellungsfenster, in dem ich verschiedene Parameter für mein Programm ändern kann. Was ist der beste Weg, sie in irgendeiner Art von Konfigurationsdatei zu lesen/zu speichern? Ich weiß, dass einige Software und Spiele .ini Dateien oder ähnliches System verwenden. Wie kann ich dies in Python erreichen?Wie speichere ich Anwendungseinstellungen in einer Konfigurationsdatei?

+0

Der beste Weg ist wahrscheinlich Xml. – enginefree

+9

@enginefree, das ist buchstäblich nie wahr. – Cairnarvon

+3

[configparser] (http://docs.python.org/3.3/library/configparser.html) ist einfach und direkt in der Standardbibliothek implementiert. –

Antwort

11

Die Python-Standardbibliothek enthält die ConfigParser module, die Ini-Style-Konfigurationsdateien für Sie verarbeitet. Es ist mehr als ausreichend für die meisten Anwendungen.

+5

Beachten Sie, dass es in 3.x umbenannt wurde ['configparser'] (http://docs.python.org/3.3/library/configparser.html). –

+0

ConfigParser arbeitete für mich wie ein Charme. Danke! – Domagoj

6

Eine weitere beliebte Option für Konfigurationsdateien ist JSON - es ist eine einfache Notation, die von einer Vielzahl von Sprachen unterstützt wird.

Python hat the json module in der Standardbibliothek, die es sehr einfach macht.

3

Da Sie in Ihrer Frage den Begriff Konfigurationsdatei eingeführt haben, konzentrierten sich die vorherigen Antworten auf Mittel zum Erstellen von einfachen Textdateien, die auch mit einem Standard-Texteditor bearbeitet werden können. Abhängig von der Art der zu speichernden Einstellungen ist dies möglicherweise nicht erwünscht, da nach dem Zurücklesen der Konfigurationsdatei zumindest Plausibilitätsprüfungen erforderlich sind. Also füge ich den Vorschlag des shelves Moduls hinzu, das eine direkte Möglichkeit ist, Informationen in Dateien persistent zu machen.

+2

Es ist erwähnenswert, dass in der überwiegenden Mehrheit der Fälle, binäre Konfigurationsdateien als eine schlechte Idee betrachtet werden - Sie machen es viel schwieriger für den Endbenutzer, mit ihnen zu arbeiten. –

Verwandte Themen