2010-09-16 1 views
0

Я хотел бы сохранить некоторые данные конфигурации в файле конфигурации. Вот типовой раздел:Хранение и получение списка кортежей с использованием ConfigParser

[URLs] 
Google, www.google.com 
Hotmail, www.hotmail.com 
Yahoo, www.yahoo.com 

Можно ли читать это в список кортежей с помощью модуля ConfigParser? Если нет, что я использую?

ответ

8

Вы можете изменить разделитель из запятой (,) в точке с запятой (:) или использовать Равные (=) знак? В этом случае ConfigParser автоматически сделает это за вас.

Для примера. Я проанализировал данные вашего образца после смены запятой на равные:

# urls.cfg 
[URLs] 
Google=www.google.com 
Hotmail=www.hotmail.com 
Yahoo=www.yahoo.com 

# Scriptlet 
import ConfigParser 
filepath = '/home/me/urls.cfg' 

config = ConfigParser.ConfigParser() 
config.read(filepath) 

print config.items('URLs') # Returns a list of tuples. 
# [('hotmail', 'www.hotmail.com'), ('google', 'www.google.com'), ('yahoo', 'www.yahoo.com')] 
2
import ConfigParser 

config = ConfigParser.ConfigParser() 
config.add_section('URLs') 
config.set('URLs', 'Google', 'www.google.com') 
config.set('URLs', 'Yahoo', 'www.yahoo.com') 

with open('example.cfg', 'wb') as configfile: 
    config.write(configfile) 

config.read('example.cfg') 
config.items('URLs') 
# [('google', 'www.google.com'), ('yahoo', 'www.yahoo.com')] 

The documentation mentions:

Модуль ConfigParser был переименован в ConfigParser в Python 3.0. Инструмент 2to3 автоматически адаптирует импорт при конвертации ваших источников в 3.0.