Saya tidak peduli apakah itu JSON
, pickle
, YAML
, atau apa pun.
Semua implementasi lain yang saya lihat tidak kompatibel ke depan, jadi jika saya memiliki file konfigurasi, tambahkan kunci baru dalam kode, lalu muat file konfigurasi itu, itu hanya akan macet.
Apakah ada cara sederhana untuk melakukan ini?
.ini
format -seperticonfigparser
modul harus melakukan apa yang Anda inginkan.Jawaban:
File konfigurasi di python
Ada beberapa cara untuk melakukan ini tergantung pada format file yang diperlukan.
ConfigParser [format .ini]
Saya akan menggunakan pendekatan configparser standar kecuali ada alasan kuat untuk menggunakan format yang berbeda.
Tulis file seperti ini:
Format file sangat sederhana dengan bagian yang ditandai dalam tanda kurung siku:
Nilai dapat diekstrak dari file seperti ini:
JSON [format .json]
Data JSON bisa sangat kompleks dan memiliki keuntungan karena sangat portabel.
Menulis data ke file:
Membaca data dari file:
YAML
Contoh YAML dasar disediakan dalam jawaban ini . Detail selengkapnya dapat ditemukan di situs web pyYAML .
sumber
from configparser import ConfigParser
config = ConfigParser()
Contoh ConfigParser Basic
File tersebut dapat dimuat dan digunakan seperti ini:
keluaran yang mana
Seperti yang Anda lihat, Anda dapat menggunakan format data standar yang mudah dibaca dan ditulis. Metode seperti getboolean dan getint memungkinkan Anda mendapatkan tipe data alih-alih string sederhana.
Konfigurasi penulisan
menghasilkan
Contoh XML Basic
Sepertinya tidak digunakan sama sekali untuk file konfigurasi oleh komunitas Python. Namun, mengurai / menulis XML itu mudah dan ada banyak kemungkinan untuk melakukannya dengan Python. Salah satunya adalah BeautifulSoup:
di mana config.xml akan terlihat seperti ini
sumber
Jika Anda ingin menggunakan sesuatu seperti file INI untuk menahan pengaturan, pertimbangkan untuk menggunakan configparser yang memuat pasangan nilai kunci dari file teks, dan dapat dengan mudah menulis kembali ke file tersebut.
File INI memiliki format:
sumber
Simpan dan muat kamus. Anda akan memiliki kunci, nilai, dan jumlah acak kunci, pasangan nilai.
sumber
Coba gunakan ReadSettings :
sumber
coba gunakan cfg4py :
PENAFIAN: Saya adalah penulis modul ini
sumber