membaca file dengan python

Saya perlu membaca file seperti di bawah ini:

config = {
    'name': 'hello',
    'see?': 'world'
}

menggunakan kunci seperti nama dan lihat? ,tapi saya tidak ingin mengkodekan nilai-nilai dalam skrip dengan keras.Dan bagaimana menangani sarang yang lebih dalam dalam kasus ini.File mungkin berisi lebih banyak bagian seperti ini bagaimana saya bisa mengenali bahwa 'nama' milik bagian mana saat runtime.


person Jagdev Singh    schedule 15.03.2011    source sumber
comment
Saya tidak mengerti pertanyaanmu. Bisakah Anda memberikan contoh file konfigurasi dan struktur data yang ingin Anda peroleh darinya?   -  person Björn Pollex    schedule 15.03.2011
comment
membaca file dengan konfigurasi ini? konfigurasi apa ini? Anda ingin membuka file, bukan masalah besar   -  person Mohammad Efazati    schedule 15.03.2011
comment
Kemungkinan duplikat: stackoverflow.com/questions/186916/   -  person Marijn van Vliet    schedule 15.03.2011
comment
Jika jawaban tertentu memecahkan masalah Anda, terimalah dengan menggunakan tanda centang di sebelah kiri jawaban.   -  person Björn Pollex    schedule 15.03.2011


Jawaban (4)


Jika Anda mengkodekan struktur Anda sebagai data JSON, seperti yang saya pikir Anda inginkan dan lakukan pada contoh, Anda hanya perlu menulis dan membaca struktur dalam sebuah file. Sebagai contoh:

 import json 
 config = {
  'name': 'hello',
  'see?': 'world'
 }
 out = open('config.json','w')
 out.write(json.dumps(config))
 out.close() 

File konfigurasi disimpan

 input = open('config.json','r')
 config = json.loads(input.read())
 input.close()
 print config

File konfigurasi dimuat ulang

person Community    schedule 15.03.2011

File itu terlihat seperti python yang valid. Jika Anda dapat mengganti namanya file.py Anda cukup menggunakan:

from file import config
print config['name']
print config['see?']

Jika tidak, file tersebut mungkin JSON. Lihat http://docs.python.org/library/json.html

person rjmunro    schedule 15.03.2011
comment
Saya lebih memilih json daripada membaca sebagai python. Jauh lebih aman, dan akan menghasilkan kesalahan yang dapat ditangkap daripada gagal dengan kesalahan penguraian. - person Phil H; 15.03.2011
comment
@Phil H: Contohnya adalah Python. Mengimpor Python dengan parameter konfigurasi sangat aman dan melaporkan kesalahan yang dapat di-debug dengan sempurna. - person S.Lott; 15.03.2011

Sepertinya Anda menginginkan file konfigurasi? Apakah formatnya sudah ditentukan atau Anda sedang membuatnya? Jika Anda hanya perlu membaca opsi dari suatu file, ada:

http://docs.python.org/library/configparser.html

yang menangani format INI. Jika Anda sudah memiliki file dengan format di atas, dapatkah Anda mengetahui apakah itu format JSON? Jika demikian, ada modul untuk itu juga.

person SpliFF    schedule 15.03.2011

Tampaknya format konfigurasi Anda adalah python atau JSON yang valid, yang memiliki parser bawaan di python. Lihat http://docs.python.org/library/json.html untuk informasi lebih lanjut . Jika Anda mencoba mengimpor file python yang valid sebagai konfigurasi, gunakan saja import.

person orlp    schedule 15.03.2011