2009-08-04 10 views
5

Szukam dobrej biblioteki plików konfiguracyjnych dla c, która nie jest xml. Optymalnie chciałbym taki, który również ma powiązania Pythona. Najlepszą opcją, jaką wymyśliłem, jest użycie biblioteki JSON zarówno w języku c jak i python. Co byś polecił lub jaką metodę odczytu/zapisu ustawień preferujesz?Co to jest dobra biblioteka plików konfiguracyjnych dla cs nie xml (najlepiej ma powiązania Pythona)?

+3

Co jest nie tak z JSON? Jeśli rozszerzysz to na YAML, czytanie może być jeszcze łatwiejsze. Jakie problemy przewidujesz? –

+0

Nie ma nic złego w JSON, ja wolę JSON dla większości wszystkiego. Moje jedyne wahanie było ścisłą składnią. Chcę, aby plik konfiguracyjny był łatwo odczytywany/edytowany przez programistę, a więcej na białą spację (powinno to wspomnieć). YAML robi dokładnie to! Właśnie tego chcę, dzięki! – user19745

Odpowiedz

0

Można użyć rozwiązania czystego Pythona, takiego jak ConfigObj, a następnie po prostu użyć interfejsu API CPython do zapytania o ustawienia. Zakłada to, że twoja aplikacja osadza Pythona. Jeśli tak nie jest, a mimo to wysyłanie Pythona mimo wszystko, może być sens, aby go osadzić. Twój plik C .exe nie będzie znacznie większy, jeśli jest linkiem dynamicznym, a będziesz miał pełną swobodę w dostępie do Pythona.

0

Pomimo znienawidzonego przez techników i wyrzuconego przez Microsoft, pliki INI są dość popularne wśród użytkowników, ponieważ są łatwe do zrozumienia i edycji. Są również bardzo łatwe do napisania parserów, jeśli twoje biblioteki jeszcze ich nie obsługują.

+1

-1: Pliki ini mają dziwne ograniczenia, które utrudniają pracę z wyjątkiem naprawdę prostych przypadków. W tych prostych przypadkach plik Pythona pełen instrukcji przypisania może być lepszy. –

+0

Wygląda na to, że działają na przykład w PHP i Sambie. A jakie są te dziwne ograniczenia? –

+0

Struktura INI (parsowana przez plik konfiguracyjny) jest płaska. Bez struktury. Więc sekcje mają złożone nazwy, aby narzucić strukturę. Na przykład plik inicjujący rejestrowanie jest trudny do edycji, ponieważ nazwy sekcji zależą od innych ustawień ini. –

1

Jeśli nie jesteś żonaty Python, spróbuj Lua. Został pierwotnie zaprojektowany do konfiguracji.

Powiązane problemy