Python - pitanje oko sys.arvg

poruka: 4
|
čitano: 907
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
13 godina
offline
Python - pitanje oko sys.argv

Pozdrav svima,

 

evo možda jedno pitanje koje će se činiti lako, ali ne mogu naći rješenje.

 

Znači imam program (ajmo ga nazvati test.py) koji ima ove dvije linije u sebi:

 

tekst =  sys.argv[1:5]

led.show_message(tekst, transition = transitions.left_scroll)

 

 

Ovaj led.show_message ispisuje tekst. Ako ja pokrenem program s komandom "python test.py 1 2 4 4", on će ispisati na LED matrici 1 2 4 4 ...ali ako napišem "python test.py jedan dva cetiri cetiri" on će izbaciti grešku. Ako zamjenim

 

tekst =  sys.argv[1:5]

s

tekst =  sys.argv[1]

 

i upišem "python test.py jedan dva cetiri cetiri" on će ispisati jedan (slovima). Radi se o tome da mu ne mogu staviti da koliko ja upišem riječi nakon "test.py" da ih on ispiše na LED matricu.  Ali ako napišem "python test.py "jedan dva cetiri cetiri"" on ce to ispisati zbog "" (vidi kao jedan argument). Ne znam kako da promijenim to da može string. Argparse ne razumijem baš, ako ima neki način da mi pomognete u svezi ovoga jer polagano ludim :)

 

Probao sam ove dvije linije isto ubaciti, ali ništa od toga:

 

sys.argv[1].decode("utf-8")
ili
unicode(sys.argv[1], 'utf-8')

 

 

Inače kada mi to bude radilo u terminalu, lako namjestim za ono što mi treba (preko php stranice). Evo video gdje normalno prihvaća brojeve  -- https://db.tt/OY5pjhbc

 

Inače u PHP koristim ove linije za to :

 

<form action="" method="post"> Unesite tekst koji zelite da se prikaze na LED matrici <input type="text" name="tekstodabir"> <input type="submit" name="TekstOdabir" value="Posalji"> </form> <?php if (isset($_POST['TekstOdabir'])) { $text = $_POST["tekstodabir"]; session_start(); $_SESSION['tekstodabir'] = $text; exec('sudo python /var/www/max7219/examples/tekstbox.py '.$text); } ?>


Zato mi treba da on uhvati taj cijeli tekst, jer ne znam kako da mu prenesem .$text kao "tekst iz boxa". Zato ako netko ima neki savjet kako da on uhvati sve string argumente preko sys.arvg bio bih zahvalan {#}

 

Poruka je uređivana zadnji put ned 15.12.2013 20:36 (X-Plosiv).
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Re: Python - pitanje oko sys.argv

Koju ti točno grešku javlja?

13 godina
offline
Python - pitanje oko sys.arvg

Budem odgovorio sutra predvečer/navečer. Razlog leži u tome što ne vjerujem da ću prije toga moći upaliti RPi jer imam obaveze :/

 

Poslao mi je profesor jedno moguće rješenje, pa ga isprobam sutra, ako radi postam ga tu, ako ne budem javio grešku {#}

 

 

EDIT:

 

Da ne pišem opet - riješio problem s ovim kodom:

 

import sys

tekst=""

brojac=0

for argument in sys.argv:

if(brojac!=0):

tekst=tekst+argument+" "

brojac=brojac+1

tekst=tekst[0:len(tekst)-1]

Poruka je uređivana zadnji put ned 15.12.2013 23:34 (X-Plosiv).
Moj PC  
0 0 hvala 0
12 godina
neaktivan
offline
Re: Python - pitanje oko sys.arvg

Ovakvo rješenje ne može prikazati dva ili više razmaka između riječi, npr "jedan dva cetiri    cetiri" će se ispisati kao "jedan dva cetiri cetiri".

 

Ako ti to ne smeta, onda se to može napisati kraće:

import sys
tekst = ' '.join(sys.argv[1:])

1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice