2011-03-15 26 views
1

我需要閱讀文件喜歡閱讀下面的內容:文件在python

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

使用鍵,如名字和看到了什麼? ,但我不想在腳本中對這些值進行硬編碼。在這種情況下如何處理更深的嵌套。文件可能包含更多這樣的部分,我怎麼才能在運行時識別'name'屬於哪個部分。

+1

我不明白你的問題。你能否提供一個配置文件和你想從中獲得的數據結構的例子? – 2011-03-15 10:32:44

+0

使用此配置讀取文件?這個配置是什麼?你想打開文件,沒什麼大不了 – Efazati 2011-03-15 10:34:02

+1

可能的重複:http://stackoverflow.com/questions/186916/configuration-file-with-list-of-key-value-pairs-in-python – 2011-03-15 10:37:58

回答

4

如果您將結構編碼爲JSON數據,正如我認爲您想要的,並且您在示例中所做的那樣,那麼您只需要在文件中編寫和讀取結構。 作爲一個例子:

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

保存配置文件

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

配置文件重新加載

1

聽起來像你想要一個配置文件?該格式已被定義或者您正在創建它?如果你只是需要從文件中讀取的選項有:

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

它處理INI格式。如果你已經有了上述格式的文件,你可以告訴它是否是JSON格式?如果是這樣,那也有一個模塊。

3

該文件看起來像有效的Python。如果可以重命名file.py你可以只使用:

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

否則,該文件可能是JSON。請參閱http://docs.python.org/library/json.html

+0

我會去的JSON而不是閱讀蟒蛇。更安全,並且會產生可捕獲的錯誤,而不是失敗的解析錯誤。 – 2011-03-15 10:37:45

+0

@Phil H:這個例子是Python。使用配置參數導入Python是非常安全的,並報告完美的可調試錯誤。 – 2011-03-15 14:54:59

0

看來你的配置格式是有效的python或JSON,它在python中有一個內置的解析器。有關更多信息,請參閱http://docs.python.org/library/json.html。如果你試圖導入一個有效的Python文件作爲配置只需使用import