Форум сайта python.su
Имеется фрагмент кода:
file_con=open(“./connect.txt”, ‘r’)
sss=“”.join(file_con.readlines())
i=1
for x in sss.split('\n'):
if i == 1:
db=x
i+=1
elif i == 2:
host=x
i+=1
elif i == 3:
user=x
i+=1
else:
password=x
i+=1
в файлике лежат данные для подключения:
“db
host
user
password”
Как бы сделать покрасивше?)))
Офлайн
file_con=open("./connect.txt", 'r') db= file_con.readline() host=file_con.readline() user=file_con.readline() password=file_con.readline() file_con.close()
Офлайн
Я бы вообще сменил формат конфига на что-то вроде такого:
dbname='db'
host='hostname'
user='username'
password='megapassword'
а данные после разбора хранил бы в словаре(dict), чтоб не было зависимости от последовательности строк.
Офлайн
proDiva посмотри питоновский пакет configobj
Офлайн
обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп
нафига парсить-то%)?
Офлайн
Да, написать так на питоне еще нужно постараться :-)
А как-то так разве нельзя?
try: db, host, user, password = open("connect.txt").read().split() except ValueError: print 'Wrong connect file format!'
Офлайн
slav0nicЕсли сделать config.py, то при создании exe-шника он в него включится. А у меня пользователи будут подключаться к разным базам, поэтому хочу выделить файл подключения.
обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп
нафига парсить-то%)?
Отредактировано (Март 6, 2007 08:31:52)
Офлайн
xonix
Именно такого решения и ждала, спасибо!
Офлайн
proDivaЯ бы все-таки посоветовал использовать хотя бы стандартный модуль ConfigParser. Рано или поздно понадобится что-то большее чем просто файл с четырьмя строчками. Да и пользователям легче будет понимать структуру нормального ini-файла, вроде такого:
xonix
Именно такого решения и ждала, спасибо!
[Database]
host = dbhost
port = port
Офлайн
OlDer
Это тоже хороший вариант, может и переделаю))
Офлайн