是否有解析器讀取並存儲要寫入的數據類型? 文件格式必須產生可讀。 貨架不提供。Python ini解析器
回答
使用ConfigParser
類ini文件格式讀取配置文件:
http://docs.python.org/library/configparser.html#examples
INI文件格式不存儲存儲的值的數據類型(你需要知道他們爲你讀數據返回)。您可以通過JSON格式編碼的值克服這個限制:
import simplejson
from ConfigParser import ConfigParser
parser = ConfigParser()
parser.read('example.cfg')
value = 123
#or value = True
#or value = 'Test'
#Write any data to 'Section1->Foo' in the file:
parser.set('Section1', 'foo', simplejson.dumps(value))
#Now you can close the parser and start again...
#Retrieve the value from the file:
out_value = simplejson.loads(parser.get('Section1', 'foo'))
#It will match the input in both datatype and value:
value === out_value
作爲JSON,存儲值的格式是人類可讀。
你可以使用下面的函數
def getvalue(parser, section, option):
try:
return parser.getint(section, option)
except ValueError:
pass
try:
return parser.getfloat(section, option)
except ValueError:
pass
try:
return parser.getbool(section, option)
except ValueError:
pass
return parser.get(section, option)
如果您存儲布爾值(存儲在ini文件中的值爲1或0),則會返回一個int值。 –
這是一個重要的限制,是的。不幸的是,當時不可能找出確切的含義。 (就像很多可能的值一樣)。幸運的是,如果你像使用它那樣使用它,那麼它就不會成爲一個問題,如:如果getvalue(parser,「asection」,「boollookslikeint」):' – Robin
最終,如果OP只是以ini文件格式存儲東西 - 沒有進一步的元數據,能夠返回數據類型。 –
隨着configobj
庫,它變得非常簡單。現在
import sys
import json
from configobj import ConfigObj
if(len(sys.argv) < 2):
print "USAGE: pass ini file as argument"
sys.exit(-1)
config = sys.argv[1]
config = ConfigObj(config)
可以使用config
作爲一個字典中提取所需的配置。
如果您想將其轉換爲json
,那也很簡單。
config_json = json.dumps(config)
print config_json
- 1. INI文件解析器C
- 2. 解析.ini文件
- 3. PHP RAW INI解析器無法解析值正確
- 4. PHP解析ini文件
- 5. 用KSH解析INI文件
- 6. PHP INI解析錯誤
- 7. 如何解析INI樣式文件
- 8. Python tnsnames.ora解析器
- 9. html解析器python
- 10. Python pull解析器
- 11. 解析的.ini與部分中的python-脫鉤
- 12. 解析在python lxml的解析器
- 13. 解析INI文件的優點/缺點
- 14. 在.htaccess中解析INI文件
- 15. 當amperstand(&)解析INI文件時,值爲
- 16. 如何解析ini文件與升壓
- 17. 解析一個奇怪的畸形ini
- 18. INI解析並驗證所需字段
- 19. 解析類INI配置文件
- 20. Zend Config Ini - 無法解析數組
- 21. 在qt中解析ini文件
- 22. 解析ini文件和使用掃描器類
- 23. 包含.ini數據的字符串的javascript解析器
- 24. IIS日誌解析器 - Python
- 25. Python中的XML解析器
- 26. Python中的JavaScript解析器
- 27. Python:通用XML解析器
- 28. Python 3.1 RSS解析器?
- 29. Python的XML解析器
- 30. Python中的SGML解析器
[ConfigParser(http://docs.python.org/library/configparser.html) –
不ConfigParser不是你想要的嗎? –
我需要支持自動類型檢測。 ConfigParser以字符串形式讀取所有內容。 – Evgeny