Форум сайта python.su
0
Имеется фрагмент кода:
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”
Как бы сделать покрасивше?)))
Офлайн
2
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()
Офлайн
0
Я бы вообще сменил формат конфига на что-то вроде такого:
dbname='db'
host='hostname'
user='username'
password='megapassword'
а данные после разбора хранил бы в словаре(dict), чтоб не было зависимости от последовательности строк.
Офлайн
0
proDiva посмотри питоновский пакет configobj
Офлайн
41
обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп
нафига парсить-то%)?
Офлайн
0
Да, написать так на питоне еще нужно постараться :-)
А как-то так разве нельзя?
try: db, host, user, password = open("connect.txt").read().split() except ValueError: print 'Wrong connect file format!'
Офлайн
0
slav0nicЕсли сделать config.py, то при создании exe-шника он в него включится. А у меня пользователи будут подключаться к разным базам, поэтому хочу выделить файл подключения.
обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп
нафига парсить-то%)?
Отредактировано (Март 6, 2007 08:31:52)
Офлайн
0
xonix
Именно такого решения и ждала, спасибо!
Офлайн
0
proDivaЯ бы все-таки посоветовал использовать хотя бы стандартный модуль ConfigParser. Рано или поздно понадобится что-то большее чем просто файл с четырьмя строчками. Да и пользователям легче будет понимать структуру нормального ini-файла, вроде такого:
xonix
Именно такого решения и ждала, спасибо!
[Database]
host = dbhost
port = port
Офлайн
0
OlDer
Это тоже хороший вариант, может и переделаю))
Офлайн