Linux за българи: Форуми

Програмиране => Общ форум => Темата е започната от: AMD в Mar 02, 2012, 14:06



Титла: python exec
Публикувано от: AMD в Mar 02, 2012, 14:06
Здравейте.

Имам малък проблем относно python exec, не мога да намеря по документациите как мога да изпълня външна команда която да чете променлива от python скрипта.

Код
GeSHi (Python):
  1. #!/usr/bin/python
  2. #-*- coding: utf-8 -*-
  3. import os
  4.  
  5. question = "Выберите файл. Вам нужно написать полный путь к файлу!"
  6. print (question)
  7. answer = raw_input()
  8.  

Та значи искам да направя следното, за пример и ориентация ще дам от Шел.

Код
GeSHi (Bash):
  1. echo "Въпрос"
  2. read otgowor
  3. cat $otgowor | curl -F 'sprunge=<-' http://sprunge.us

Надявам се да успях да задам въпроса си добре.


Титла: Re: python exec
Публикувано от: b2l в Mar 02, 2012, 18:46
Да видим дали правилно съм разбрал: искаш bash да чете променлива на python? Защото долния пример прави точно това: шела, че те променлива от bash скрипт.


Титла: Re: python exec
Публикувано от: AMD в Mar 02, 2012, 18:59
Да видим дали правилно съм разбрал: искаш bash да чете променлива на python? Защото долния пример прави точно това: шела, че те променлива от bash скрипт.

Значи дадох за пример работещия баш вариант, искам да направя същото само че с Python или Ruby.


Титла: Re: python exec
Публикувано от: Acho в Mar 02, 2012, 18:59
/off

Ама един път да се разберете и вие двамата. И то от 3 реда код. Накефих се.


Титла: Re: python exec
Публикувано от: b2l в Mar 02, 2012, 19:06
/off

Ама един път да се разберете и вие двамата. И то от 3 реда код. Накефих се.

http://docs.python.org/library/commands.html :? :? :?


Титла: Re: python exec
Публикувано от: lunarvalley в Mar 02, 2012, 19:08
Цитат
Ама един път да се разберете и вие двамата.

петък е и бирата прави хората благи и добри (в началото)
 [_]3


Титла: Re: python exec
Публикувано от: AMD в Mar 02, 2012, 19:11
/off

Ама един път да се разберете и вие двамата. И то от 3 реда код. Накефих се.


http://docs.python.org/library/commands.html :? :? :?

Хубаво де тези неща ги правя, и работят.
Но когато опитам да изпълня реда с извличане на променливата нещо не се получава, или на грешно място я търся..

Код:
read otgowor
cat $otgowor | curl -F 'sprunge=<-' http://sprunge.us

За това имам в предвид.


Титла: Re: python exec
Публикувано от: bop_bop_mara в Mar 02, 2012, 21:44
Това ли търсиш?
Код
GeSHi (Python):
  1. >>> ans="yes"
  2. >>> "echo %s" % ans
  3. 'echo yes'
  4. >>> "echo %s" % raw_input()
  5. hello world
  6. 'echo hello world'
  7. >>>
  8.  

Или се чудиш как да пуснеш pipeline?


Титла: Re: python exec
Публикувано от: AMD в Mar 02, 2012, 23:31
Това ли търсиш?
Код
GeSHi (Python):
  1. >>> ans="yes"
  2. >>> "echo %s" % ans
  3. 'echo yes'
  4. >>> "echo %s" % raw_input()
  5. hello world
  6. 'echo hello world'
  7. >>>
  8.  

Или се чудиш как да пуснеш pipeline?

Не е това.
Толкова ли лошо попитах?

Нали давам за пример от Шел как вземам от променливата

read promenliwa
exec cmd | $promenliwa

Но не знам как да го приложа в Python, или знам но просто го правя неправилно.


Титла: Re: python exec
Публикувано от: bop_bop_mara в Mar 03, 2012, 03:07
Сега, определено успяваш да си противоречиш с всеки следващ пост. Това exec cmd | $promenliwa направо избива рибата.

Съдейки по първия пост, задачата ти трябва да е следната:
Потребителят въвежда на стандартния вход име на файл и съдържанието на файла трябва да се качи в sprunge.us и да се върне в низ url към каченото.
Така ли е?

Edit: ОК. Всичко, което ти тябва, ти е казано. Поиграй си с commands.getoutput(), забележи, че приема цял команден ред, вкл. pipeline, огледай коя опция трябва още за curl и готово.


Титла: Re: python exec
Публикувано от: AMD в Mar 03, 2012, 09:10
Сега, определено успяваш да си противоречиш с всеки следващ пост. Това exec cmd | $promenliwa направо избива рибата.

Съдейки по първия пост, задачата ти трябва да е следната:
Потребителят въвежда на стандартния вход име на файл и съдържанието на файла трябва да се качи в sprunge.us и да се върне в низ url към каченото.
Така ли е?

Edit: ОК. Всичко, което ти тябва, ти е казано. Поиграй си с commands.getoutput(), забележи, че приема цял команден ред, вкл. pipeline, огледай коя опция трябва още за curl и готово.

Значи с баш скрипта, да опиша какво правим.

Пита се за файл, пише се в стандартния вход и се вкарва в променлива, след което командната линия cat $file | curl -F 'sprunge=<-' http://sprunge.us

При което като изход трябва да даде съответен линк.

root@CLFDG [ 9:09:45 ] [ 03/03/12 ] [ pts/6 ] /home/roko__/bin # sprunge
Изберете файл./Выберите файл./Select file.
check-emerge
 http://sprunge.us/Qegh
root@CLFDG [ 9:10:18 ] [ 03/03/12 ] [ pts/6 ] /home/roko__/bin #       

Та ми се иска същото да го направя в ООП. 


Титла: Re: python exec
Публикувано от: bop_bop_mara в Mar 03, 2012, 14:38
ОК де, вече са ти казали всичко, което ти трябва. Да разбираме ли, че няма сам да се пробваш, а искаш кода наготово?  ???


Титла: Re: python exec
Публикувано от: AMD в Mar 03, 2012, 16:27
ОК де, вече са ти казали всичко, което ти трябва. Да разбираме ли, че няма сам да се пробваш, а искаш кода наготово?  ???

Аз поне не виждам да са ми казали ? Пробвах се но не намирам полезна информация или кратки примери.

Извън темата, някой има ли опит с Xdialog?
При параметри като Xdialog --yesno "Въпрос" размер1 размер2 нали се показва диалогов прозорец с въпроса, та мисълта ми е как точно трябва да се направи в скрипта за да може да "знае" кога какъв бутон е натиснат, и следователно при различните действия да изпълнява различни командни линии.


Титла: Re: python exec
Публикувано от: bop_bop_mara в Mar 03, 2012, 21:53
Цитат
Аз поне не виждам да са ми казали ? Пробвах се но не намирам полезна информация или кратки примери.

Цитат
Поиграй си с commands.getoutput(), забележи, че приема цял команден ред, вкл. pipeline, огледай коя опция трябва още за curl и готово.

???

Да не говорим, че току-що ме светнаха, че не ти трябва pipeline изобщо:
Код
GeSHi (Bash):
  1. curl -F 'sprunge=@try/try.c' http://sprunge.us
прави напълно същото, като
Код
GeSHi (Bash):
  1. cat try/try.c | curl -F 'sprunge=<-' http://sprunge.us

ПС. Пак ти припомням следния пример как може да си построиш низ:
Код
GeSHi (Python):
  1. >>> "cat %s" % raw_input()
  2. try/try.c
  3. 'cat try/try.c'
  4. >>>



Титла: Re: python exec
Публикувано от: b2l в Mar 04, 2012, 17:40
Отговора е да си смениш шела с пайтънкис такъв.

   
Та ми се иска същото да го направя в ООП.

ООП  ??? ???