Найти - Пользователи
Полная версия: Передача многострочного параметра в функцию
Начало » Python для новичков » Передача многострочного параметра в функцию
1 2
darksmoke
Добрый день
Подскжите, пожалуйста, как передать в функцию многострочную переменную

def test(jdbc_new):
    if jdbc_new.strip() == '':
        print yellow('1.txt not use. It is normal =)')
    else:
        run('echo -e "'+ jdbc_new +'" >> '+ resin_path  +'/1.txt')
Хочу передать такую строку
вввввв
вввв=3333
уууу=1111
http//
FishHook
За год изучения языка вы не освоили концепцию коллекций?
darksmoke
К сожалению, я немного учу, по мере необходимости.
darksmoke
подскажите, как реализовать или что читать
FishHook
Хорошо, давайте по порядку. Чем “многострочная переменная” отличается от однострочной и почему вообще у вас вдруг возник вопрос. Вы пробовали передавать “многострочную переменную” в функцию? Каков результат был?
darksmoke
Пробовал, вот что пишет
/sybase/jenkins_cat/Fabric/python/bin/fab -H 10.1.108.110 'update_war:resin_path=/opt/resin_slave,backup_dir=/opt/backup,local_path=/opt/scripts/P24j,jdbc_new=http://site.ruc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec'

Traceback (most recent call last):
File “/sybase/jenkins_cat/Fabric/python/lib/python2.7/site-packages/fabric/main.py”, line 700, in main
commands_to_run = parse_arguments(arguments)
File “/sybase/jenkins_cat/Fabric/python/lib/python2.7/site-packages/fabric/main.py”, line 536, in parse_arguments
k, v = result
ValueError: too many values to unpack
FishHook
показывайте весь код
darksmoke
@task
#@parallel(pool_size=2)
def update_war(resin_path,backup_dir,local_path,jdbc_new):
    """
    - Update war file on instance. fab -R [ plateg | vipiski | vip | msb | all ] update_war:Path to resin, Path to backup folder, Path to local war file
    """
    run('mkdir -p '+ backup_dir)
    local('ssh  test@'+ env.host +' "'+ resin_path +'/init-resin stop"')
    arch_name = os.path.basename(resin_path)
    try:
        run('tar -cvzf '+ backup_dir  +'/'+ arch_name  +'_$(date +%Y-%m-%d_%H-%M-%S).tar.gz -C '+ resin_path  +'/conf jdbc.properties -C '+ resin_path +'/deploy-cb 22.war')
    except:
        print red("""\n\n=============== ATTENTION ==============\n\tBackup file doesn\'t create\n\n""",bold=True)
    try:
        run('rm -r '+ resin_path +'/deploy-cb/*')
    except:
        print red("""\n\n=============== ATTENTION ==============\n\tNot delete files in deploy-cb\n\n""",bold=True);
    if jdbc_new.strip() == '':
        print yellow('jdbc.properties not use. It is normal =)')
    else:
        run('echo -E '+ jdbc_new +' >> '+ resin_path  +'/conf/jdbc.properties')
    put(local_path +'/22.war',resin_path +'/deploy-cb/',mode=0644)
    if jdbc_new.strip() == '':
        print yellow('jdbc.properties not use. It is normal =)')
    else:
        jdbc = open(resin_path  +'/conf/jdbc.properties', 'a')
        print jdbc
        jdbc.write(jdbc_new)
        jdbc.close
#        run('echo -e "'+ jdbc_new +'" >> '+ resin_path  +'/conf/jdbc.properties')
FishHook
И где в этом коде вы передаёте в функцию многострочную переменную? Не могу найти.
darksmoke
def update_war(resin_path,backup_dir,local_path,jdbc_new):
переменная jdbc_new

а вот передаю
полный пример
/sybase/jenkins_cat/Fabric/python/bin/fab -H 10.1.108.110 'update_war:resin_path=/opt/resin_slave,backup_dir=/opt/backup,local_path=/opt/scripts/P24j,jdbc_new=http://site.ruc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec'


конкретно
jdbc_new=http://site.ruc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins/job/ADMIN.New_Ukraine_AS/build?delay=0sec http://jenkins.p24.it.loc:8070/jenkins
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB