Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Python: Общие вопросы > функция в питоне


Автор: scion 13.4.2010, 14:58
привет всем!
нужно написать фукцию которая находит нужный параметр...

на баще:

function aaa {
    bbbb=`cat "$config.txt" | grep "^$1=" | sed -e "s/^$1=//"`;
    if [ -z "$bbbb" ]; then
        echo "parameter \"$1\" is empty" >&2
    fi
    echo "$bbbb"
}
в файле конфиг txt инфа вида
name=parametr
...
..

на питоне я из файла всё считал:

file = open(original_config)
contents = file.read()
file.close()

соотв. у меня всё в переменной contents. как мне  достать значение переменной и вернуть его. ?!
спс.

Автор: shupg 13.4.2010, 17:41
Можно сделать так, если все параметры уникальны.

Код

import string

file = open(original_config)

data = {}
for line in file.readlines():
    k, v = string.split(string.strip(line, '\n'), '=')
    data[k] = v
print data

file.close()


Еще можно воспользоваться функциональностью ini файлов:
Код

import ConfigParser

Автор: scion 13.4.2010, 18:58
спс. но так не получиться.

как сделать что бы name брался из переменной?
пишу Str = Str.replace("%s", '') %name не работает...
а   Str = Str.replace("текст", '')  - работает?

и второй вопрос, 
как сделать что бы в эту фукнкцию передавалась переменная с именем проперти а возвращалась её значение... сейчас мене возвращается не только её значение но и остальные проперти. а я хочу что бы аозвращалась только та которая требуется... smile)

Код

def params(a):
    print a
    Str = contents
    Str = Str.replace("name", '')
    return Str

Автор: pythonwin 13.4.2010, 23:11
Цитата(scion @  13.4.2010,  21:58 Найти цитируемый пост)

и второй вопрос, 
как сделать что бы в эту фукнкцию передавалась переменная с именем проперти а возвращалась её значение... сейчас мене возвращается не только её значение но и остальные проперти. а я хочу что бы аозвращалась только та которая требуется... smile)

Модератор: Пожалуйста, один топик - один вопрос.

Автор: shupg 14.4.2010, 10:58
Цитата(shupg @ 13.4.2010,  17:41)
Код

import string

file = open(original_config)

data = {}
for line in file.readlines():
    k, v = string.split(string.strip(line, '\n'), '=')
    data[k] = v
print data

file.close()

После заполнения переменной data всем, что есть в файле делаем так:
Код

a = data[parameter_name]


И да простит меня модератор
Код

name1 = 'Vladimir'
name2 = 'Vitaliy'
result = '0.5 vodka'
msg = "%s + %s = %s" % (name1, name2, result)
print msg

Автор: pythonwin 14.4.2010, 11:36
Цитата(shupg @  14.4.2010,  13:58 Найти цитируемый пост)
И да простит меня модератор

за помошь не наказывают, тем более новичкам.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)