как в питоне ненапряжно считать name=value из файла

yolki

чё-то у меня в полвторого глаз замылился и в голову лезут всякие ConfigParser-ы.
есть файл в котором что-то в духе:

name=value
othername=other value
ook=oak
annot=some other long text

как это попроще прочитать? ну, с разбором ессно, чтобы по имени можно было доступ иметь

6248874

ну если все так ажурно, как в твоем примере, то наверное

config = {}
for line in open('smth.conf'):
a = line.split('=', 1)
config[a[0]] = a[1]

подойдет?

ppplva

Забыл \n в конце строк порезать.
config = dict([s.rstrip.split('=', 1) for s in open('smth.conf')])

Vladu

ну, с разбором ессно, чтобы по имени можно было доступ иметь
Если ты свободен в выборе формата, можно сделать конфигурацию кодом на питоне.
Для безопасности --- выполнить его в защищенном окружении
http://docs.python.org/library/restricted.html

pilot

ненапряжно

Vladu

Ну как,

import os
execfile(os.path.expanduser('~/.myprog/config.py'
и любой сложности объекты из файла в пространстве имён :)

yolki

т.е. переделать на

name="value"

?
занятно.. надо подумать

pilot

и любой сложности объекты из файла в пространстве имён :)
Где тут что restricted?
И чего бы тогда не делать просто "import config"?
execfile:
This function is similar to the exec statement, but parses a file instead of a string. It is different from the import statement in that it does not use the module administration — it reads the file unconditionally and does not create a new module.

Vladu

Где тут что restricted?
И чего бы тогда не делать просто "import config"?

Нет restricted, можно прикрутить (хотя, я сейчас вижу, что не так просто
как я думал).
Deprecated since version 2.6: The rexec module has been removed in Python 3.0.
Можно сделать import.
Оставить комментарий
Имя или ник:
Комментарий: