Ваш код Python 3.6 в основном правильный. Единственная проблема заключается в том, что вы пытаетесь получить исключения из класса ConfigParser
вместо модуля configparser
. Основное замешательство здесь, скорее всего, связано с тем, что имя модуля изменилось в Python 3, чтобы оно стало более встроенным в стандарты PEP8 . Изначально модуль и класс ConfigParser
имели одно и то же имя, но в Python 3 это не так.
Приведенный ниже код должен работать в Python 2 и 3.
try:
import configparser
except ImportError:
import ConfigParser as configparser
logOutCfg = configparser.ConfigParser()
try:
if (os.path.isfile(logOutfilename)):
logOutCfg.read(logOutfilename)
except configparser.MissingSectionHeaderError as e:
pass
except configparser.ParsingError as e:
print(e)
Вот краткое описание того, что здесь происходит.
try:
import configparser
except ImportError:
import ConfigParser as configparser
Попробуйте импортировать модуль Python 3 configparser
. Если в Python 2 это повысит ImportError
. Мы ловим это и вместо этого импортируем ConfigParser
и используем псевдоним с помощью configparser
.
logOutCfg = configparser.ConfigParser()
. Получаем класс ConfigParser
из модуля configparser
, импортированного выше, и создаем его экземпляр.
try:
if (os.path.isfile(logOutfilename)):
logOutCfg.read(logOutfilename)
except configparser.MissingSectionHeaderError as e:
pass
except configparser.ParsingError as e:
print(e)
Попробуйте открыть файл, как и раньше, но вместо того, чтобы пытаться получить исключения из класса ConfigParser
, получите их из модуля configparser
.