Ciao a tutti, Sto studiando Python, (sono alle classi). Vorrei cominciare a capire come interagire con il sistema. Per esempio, con uno script bash mi bastava scrivere il comando ad esempio
Capisco che Python non è la shell e quindi la cosa non può essere così diretta. Ma mi piacerebbe scoprire come usare le applicazioni/librerie di Ubuntu. Qualche consiglio? chiesto 09 Oct '13, 21:28 gisnio-sell enzotib ♦♦ |
Per lanciare un'applicazione esterna, nel caso più semplice puoi usare il metodo
vedi per esempio http://docs.python.org/2.7/library/os.html#os.system In effetti è consigliato di rimpiazzare le chiamate a ha risposto 09 Oct '13, 21:58 enzotib ♦♦ Ciao @enzotib, Grazie, in teoria quindi fra parentesi posso mettere qualunque comando che userei da terminale?
(09 Oct '13, 22:00)
gisnio-sell
Sì, proprio così, il metodo system lancia una subshell in cui esegue la stringa come uno script di shell, ma l'interazione con il resto dello script python è limitata. Per esempio per gestire l'output del programma potresti guardare in alternativa il metodo popen.
(09 Oct '13, 22:02)
enzotib ♦♦
Mi stai dando preziose info.. Penso io debba guardare la documentazione per vedere tutti gli aspetti del metodo popen giusto? Ancora ci devo fare la mano.. L'interazione è limitata a causa dell'inviolabilità prorpia delle variabili interne di una classe in questo caso os? (ho ancora molto confusione in testa sono ancora in fase di apprendimento)
(09 Oct '13, 22:15)
gisnio-sell
@gisnio-sell: ho aggiunto qualche altra info alla risposta
(09 Oct '13, 22:21)
enzotib ♦♦
@enzotib .. penso ci metterò un po a leggere (e capire) tutto.. Metto la spunta di domanda risolta intanto comunque, mi hai dato indicazioni che vanno perfino oltre a quanto avevo chiesto... Grazie ancora! :)
(09 Oct '13, 22:32)
gisnio-sell
Ma i valori numerici che restituisce dopo ogni processo cosa rappresentano? Comunque con questo comando provando:
ls -l non mi stampa nulla, immagino perchè nessun comando apre e "mette in sleep" il terminale... però se ad esempio provo : subprocess.call(["smplayer"]) smplayer viene aperto
(09 Oct '13, 22:48)
gisnio-sell
@gisnio-sell: devi usare check_output invece di call, e il numero restituito è l'exit code del processo, 0 se tutto ok, oppure un codice diverso da zero per indicare una condizione di errore.
(09 Oct '13, 23:03)
enzotib ♦♦
ah ok ... infatti con il comando clear mi dava 256 ..in effetti non poteva che andare in errore
(09 Oct '13, 23:35)
gisnio-sell
5 su 8
mostra altri 3 commenti
|
Segui questa domanda
Via email:Una volta eseguito l'accesso potrai iscriverti a tutti gli aggiornamenti qui
Via RSS:Basi di markdown
- *corsivo* o __corsivo__
- **grassetto** o __grassetto__
- collegamento:[testo](http://url.com/ "titolo")
- immagine?![alt testo](/path/img.jpg "titolo")
- elenco numerato: 1. Foo 2. Bar
- per aggiungere un'interruzione di riga, aggiungi due spazi a fine riga e premi «Invio»
- è supportato anche semplice HTML
Tag:
domanda posta: 09 Oct '13, 21:28
domanda visualizzata: 4,015 volte
ultimo aggiornamento: 10 Oct '13, 11:57