proDiva
Март 5, 2007 15:59:50
Имеется фрагмент кода:
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”
Как бы сделать покрасивше?)))
Александр Кошелев
Март 5, 2007 16:06:40
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()
?
slivlen
Март 5, 2007 16:09:26
Я бы вообще сменил формат конфига на что-то вроде такого:
dbname='db'
host='hostname'
user='username'
password='megapassword'
а данные после разбора хранил бы в словаре(dict), чтоб не было зависимости от последовательности строк.
pythonwin
Март 5, 2007 16:16:06
proDiva посмотри питоновский пакет configobj
slav0nic
Март 5, 2007 22:28:29
обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп
нафига парсить-то%)?
xonix
Март 6, 2007 01:15:10
Да, написать так на питоне еще нужно постараться :-)
А как-то так разве нельзя?
try:
db, host, user, password = open("connect.txt").read().split()
except ValueError:
print 'Wrong connect file format!'
proDiva
Март 6, 2007 08:17:42
slav0nic
обычно делается config.py где объявляются перменные, после чего import config;print config.var1 и тп
нафига парсить-то%)?
Если сделать config.py, то при создании exe-шника он в него включится. А у меня пользователи будут подключаться к разным базам, поэтому хочу выделить файл подключения.
proDiva
Март 6, 2007 08:21:37
xonix
Именно такого решения и ждала, спасибо!
OlDer
Март 6, 2007 15:47:37
proDiva
xonix
Именно такого решения и ждала, спасибо!
Я бы все-таки посоветовал использовать хотя бы стандартный модуль ConfigParser. Рано или поздно понадобится что-то большее чем просто файл с четырьмя строчками. Да и пользователям легче будет понимать структуру нормального ini-файла, вроде такого:
[Database]
host = dbhost
port = port
proDiva
Март 7, 2007 08:43:30
OlDer
Это тоже хороший вариант, может и переделаю))