2009-08-04 25 views
5

Tôi đang tìm thư viện tệp cấu hình tốt cho c không phải là xml. Tối ưu tôi sẽ thực sự thích một trong đó cũng có bindings python. Tùy chọn tốt nhất mà tôi đã đưa ra là sử dụng một thư viện JSON trong cả c và python. Bạn muốn giới thiệu gì hoặc bạn thích phương pháp cài đặt cấu hình đọc/ghi nào?Thư viện tệp cấu hình tốt cho c thats not xml (tốt nhất là có ràng buộc python)?

+3

Có gì sai với JSON? Nếu bạn mở rộng này thành YAML, nó có thể dễ đọc hơn. Bạn thấy trước vấn đề gì? –

+0

Không có gì sai với JSON, tôi thích JSON cho hầu hết mọi thứ. Sự do dự duy nhất của tôi là cú pháp nghiêm ngặt của nó. Tôi muốn các tập tin cấu hình để dễ dàng đọc/chỉnh sửa bởi một lập trình viên không, nhiều hơn beased trên khoảng trắng (nên đã đề cập rằng). YAML thực hiện chính xác điều đó! Đó là chính xác những gì tôi muốn, cảm ơn! – user19745

Trả lời

0

Bạn có thể sử dụng giải pháp trăn thuần túy như ConfigObj và sau đó chỉ cần sử dụng API CPython để truy vấn cài đặt. Điều này giả định rằng ứng dụng của bạn nhúng Python. Nếu nó không, và nếu bạn đang sử dụng Python anyway, nó có thể có ý nghĩa để chỉ cần nhúng nó. C .exe của bạn sẽ không nhận được rằng lớn hơn nhiều nếu đó là một liên kết động, và bạn sẽ có tất cả sự linh hoạt của Python theo ý của bạn.

0

Mặc dù bị các techie ghét và bị Microsoft từ chối, các tệp INI thực sự khá phổ biến với người dùng vì chúng dễ hiểu và chỉnh sửa. Chúng cũng rất đơn giản để viết các trình phân tích cú pháp, nếu các thư viện của bạn chưa hỗ trợ chúng.

+1

-1: các tệp ini có những hạn chế kỳ lạ khiến chúng khó làm việc với ngoại trừ trong các trường hợp thực sự đơn giản. Đối với những trường hợp đơn giản đó, một tệp Python đầy đủ các câu lệnh gán có thể tốt hơn. –

+0

Ví dụ, họ dường như làm việc tốt cho PHP và Samba. Và những giới hạn kỳ lạ đó là gì? –

+0

Cấu trúc của một INI (được phân tích bởi configfile) là bằng phẳng. Không có cấu trúc. Vì vậy, các phần có tên tổng hợp để áp đặt cấu trúc. Ví dụ, tệp khởi tạo ghi nhật ký khó sửa vì các tên phần phụ thuộc vào các thiết lập ini khác. –

1

Nếu bạn không kết hôn với Python, hãy thử Lua. Ban đầu nó được thiết kế để cấu hình.

Các vấn đề liên quan