Cách nào tốt hơn để tạo tệp cài đặt cho các chương trình Python, mô-đun tích hợp (ConfigParser) hoặc dự án độc lập (ConfigObj)?Cái gì tốt hơn, ConfigObj hoặc ConfigParser?
Trả lời
Cho đến nay, tôi đã tìm thấy ConfigParser đủ mọi lúc tôi sử dụng. Ngoài ra, nó là một pin đi kèm chứ không phải là thư viện của bên thứ ba.
Mặc dù tôi phải thừa nhận, các mẫu mã trong tài liệu ConfigObj khiến cho ConfigParser trông thực sự kém khi so sánh. Đối với một kịch bản mà rất nhiều thao tác tập tin .ini, tôi muốn propably thích nó.
Tôi đồng ý. Tôi đã tìm thấy rằng các tính năng tôi đã mất tích trong ConfigParser, có trong ArgParse mà cũng là một pin bao gồm kể từ 2.7. Nơi tôi có python 2,7 có sẵn, tôi đã di chuyển đến ArgParse. – Hernan
Gần đây tôi đã chuyển từ configparser thành configobj và tôi rất vui mừng vì đã làm như vậy.
Đối với tôi, sự khác biệt lớn nhất là config2j's validator. Nó cho phép tôi rất dễ dàng/ngắn gọn (1) xác định loại và giá trị chấp nhận được cho mỗi mục nhập, và (2) thiết lập mặc định.
Hai tính năng đó giúp tôi tiết kiệm rất nhiều mã và ngăn chặn rất nhiều lỗi. Plus, thực sự không có thêm chi phí để sử dụng configobj về sự phức tạp của mã của tôi, và thư viện là khá nhỏ.
Đối với hồ sơ, tôi tìm thấy giới thiệu tốt nhất để configobj được [hướng dẫn này] (http://www.voidspace.org.uk/python/articles/configobj.shtml) - đó là một chút ngày, nhưng giải thích các hoạt động cơ bản và triết học tốt hơn tài liệu, imho. –
Tùy thuộc vào phiên bản Python của bạn, nó có thể gây tranh cãi cho dù câu trả lời câu hỏi của bạn, nhưng sau một cái nhìn ngắn tại ConfigParser và ConfigObj, tôi giải quyết cho configparser, phiên bản Python 3 của ConfigParser. There’s also a backported version on PyPI.
ConfigParser có vẻ rườm rà với tôi, thậm chí có thể-tôi dám nói it-unpythonic, và với ConfigObj tôi gặp phải một vấn đề bí truyền với danh sách (Tôi muốn để có thể sắp xếp chúng theo chiều dọc, vì tôi có được thực sự dài) , và nó đã không giúp đỡ rằng phiên bản mới nhất đã được xuất bản hơn hai năm trước đây. API của configparser, tuy nhiên, trông như spiffy như của ConfigObj (mặc dù không phải là tính năng phong phú), và khi chúng tôi chuyển sang Python 3, tôi có thể có thể chuyển sang phiên bản được xây dựng trong một cách dễ dàng.
Nhân tiện, nó hoạt động tuyệt vời cho đến nay.
- 1. Cái nào tốt hơn, #fff hoặC#FFF?
- 2. Cái nào tốt hơn?
- 3. Apache2: mod_wsgi hoặc mod_python, cái nào tốt hơn?
- 4. TR1 từ Boost hoặc VC10 - Cái nào tốt hơn?
- 5. Điều gì tốt hơn: DataSet hoặc DataReader?
- 6. Điều gì tốt hơn: Json hoặc XML (PHP)
- 7. phút hoặc gzip, tốt hơn?
- 8. Điều gì là tốt hơn: int.TryParse hoặc thử {int.Parse()} bắt
- 9. "int 0x80" hoặc "syscall" tốt hơn là gì?
- 10. "điểm đến, nguồn" hoặc "nguồn, đích" tốt hơn là gì?
- 11. Điều gì tốt hơn trong CSS: div.something hoặc chỉ .something
- 12. Điều gì là tốt hơn, curl hoặc wget?
- 13. XPath hoặc Linq2Xml tốt hơn
- 14. Android: Cái nào tốt hơn, phát triển ứng dụng Android trên mac hoặc máy tính windows?
- 15. Làm mịn các giá trị theo thời gian: di chuyển trung bình hoặc một cái gì đó tốt hơn?
- 16. javascript: void (0) hoặc onclick = "return false" cho <a> - cái nào tốt hơn?
- 17. Thoát HTML sang PHP hoặc Sử dụng Echo? Cái nào tốt hơn?
- 18. jqGrid hoặc dataTable, tốt hơn?
- 19. Mã-kata là gì và nó tốt cho cái gì?
- 20. Cái nào tốt hơn? tĩnh tin vs tin
- 21. AngularJS - Cái nào tốt hơn, $ emit/$ on hoặc thừa kế phạm vi?
- 22. Thay vì Kích hoạt hoặc Cột được Tính? cái nào tốt hơn?
- 23. "Cocos2d-Javascript" hoặc "Cocos2d-x html5", cái nào tốt hơn cho Phát triển HTML5?
- 24. Cái nào tốt hơn, gcc hoặc armcc cho tối ưu hóa NEON?
- 25. Constructor hoặc thuộc tính: cái nào là lựa chọn tốt hơn trong khi gán giá trị
- 26. System.Web.Abstractions: nó tốt cho cái gì?
- 27. Điều nào tốt hơn - PyInstaller hoặc cx_Freeze?
- 28. plsql - nhận hàng đầu tiên - cái nào tốt hơn?
- 29. Team City so với CruiseControl.net- cái nào tốt hơn?
- 30. Có gì nhanh hơn/tốt hơn để sử dụng: chức năng md5 của MySQL hoặc PHP?
Ngoài ra, YAML có tốt không? – Apocryphon
"Tốt hơn" phụ thuộc vào ngữ cảnh. Đơn giản, phức tạp? Loại cài đặt nào? – detly
Apocryphon: tôi có thể đề nghị bạn chỉnh sửa câu hỏi cho một cái gì đó như: "Con và pro của ConfigParser là gì, ConfigObj, YAML" –