Ответ 1
Конструктор ConfigParser имеет аргумент ключевого слова allow_no_value
со значением по умолчанию False
.
Попробуйте установить значение true, и я уверен, что это сработает для вас.
Итак, я пишу script, который читает из конфигурационного файла, и я хочу использовать его именно так, как будет создан configparser, как описано здесь: http://docs.python.org/release/3.2.1/library/configparser.html
Я использую Python 3.2.1. script, когда он будет завершен, будет запущен на машине Windows 2008 R2 с использованием той же версии Python или, если предполагается совместимость, последней версии в то время.
#!/user/bin/env python
import configparser
config = configparser.ConfigParser()
config.read('c:\exclude.ini')
config.sections()
Это отлично работает, чтобы прочитать файл exclude.ini - если у меня нет значения без ключа. Думаю, что я мог бы что-то сделать неправильно, попытался разобрать приведенный здесь пример: http://docs.python.org/release/3.2.1/library/configparser.html#supported-ini-file-structure
Он все равно бросает следующее:
File "C:\Python32\lib\configparser.py", line 1081, in _read
raise e
configparser.ParsingError: Source contains parsing errors: c:\exclude.ini
[line 20]: 'key_without_value\n'
Я в недоумении... Я буквально копирую/вставляя пример кода из документации для точной версии python, которую я использую, и он не работает так, как должен. Я могу только предположить, что у меня что-то отсутствует, так как я тоже не могу найти кого-либо с подобной проблемой.
Конструктор ConfigParser имеет аргумент ключевого слова allow_no_value
со значением по умолчанию False
.
Попробуйте установить значение true, и я уверен, что это сработает для вас.
class RawConfigParser:
def __init__(self, defaults=None, dict_type=_default_dict,
allow_no_value=False):
self._dict = dict_type
self._sections = self._dict()
self._defaults = self._dict()
if allow_no_value:
self._optcre = self.OPTCRE_NV
else:
self._optcre = self.OPTCRE
if defaults:
for key, value in defaults.items():
self._defaults[self.optionxform(key)] = value
import ConfigParser
cf = ConfigParser.ConfigParser(allow_no_value = True)