Чтение .ini файлов в Python - PullRequest
       43

Чтение .ini файлов в Python

0 голосов
/ 04 апреля 2020

Я новичок в файлах .ini. Я пытался прочитать файлы конфигурации .ini с помощью python, и я застрял! Я попробовал этот метод, но он не сработал для меня:

class iniConfig:

def __init__(self):
    self.iniConfig = ConfigParser(allow_no_value=True)
    try:
        f = open('C://Desktop//PythonScripts//Config.ini', 'r')
        self.iniConfig.read(f)
        print("Sections: ", self.iniConfig.sections())

    except OSError:
        print('File cannot be opened!')

Вывод:

     Sections: []

Я до сих пор надеваю не понимаю, что я делаю не так: (

Заранее спасибо,

3301

Ответы [ 2 ]

0 голосов
/ 04 апреля 2020

Вы открываете файл с помощью open и используете .read, который принимает путь, поэтому попробуйте вместо этого:

   def __init__(self):
      self.iniConfig = ConfigParser(allow_no_value=True)
      try:
          self.iniConfig.read('C://Desktop//PythonScripts//Config.ini')
          print("Sections: ", self.iniConfig.sections())

      except OSError:
          print('File cannot be opened!')
0 голосов
/ 04 апреля 2020

Вы должны указать фактический путь к вашему INI-файлу вместо 'The_Path_to_ini' в следующих строках:

    f = open('The_Path_to_ini', 'r')
    print(self.iniConfig.read('The_Path_to_ini'))

Также может быть хорошей идеей обработать исключение, которое может возникнуть в open вызов. Согласно документации open () :

If the file cannot be opened, an OSError is raised.

Вы можете обработать это исключение, используя блок try ... except следующим образом:

try:
   f = open('file', 'r')
   ...
except OSError as e:
   print('File cannot be opened: ', e)

Обычно используется with оператор вместо try ... except блоков, если вам не нужно обрабатывать исключения. Например:

with open('file', 'r') as f:
   # work with f

Подробнее об этом можно прочитать в Python документации .

...