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? |
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 Ciao @enzotib, Grazie, in teoria quindi fra parentesi posso mettere qualunque comando che userei da terminale? 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. 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) @gisnio-sell: ho aggiunto qualche altra info alla risposta @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! :) 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 @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. ah ok ... infatti con il comando clear mi dava 256 ..in effetti non poteva che andare in errore
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?
- 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,271 volte
ultimo aggiornamento: 10 Oct '13, 11:57