commandwrapper

Software screenshot:
commandwrapper
Dettagli del software:
Versione: 0.7
Data di caricamento: 14 Apr 15
Sviluppatore: Yves-Gwenael Bourhis
Licenza: Libero
Popolarità: 43

Rating: 5.0/5 (Total Votes: 1)

commandwrapper è un modulo Python per avvolgere un comando shell in un oggetto Python filettato.
Utilizzo:
Si vuole lanciare i seguenti comandi bash in un filo:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
ecco come si può fare:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('grep pdf')
>>> Wc = WrapCommand ('wc -l')
>>> Wc.stdin = GrepPdf
>>> GrepPdf.stdin = Ls
>>> Wc.start ()
>>> Roba #Non
...
>>> Wc.join ()
>>> Wc.results
('5 n', '')
proprietà dei «risultati» è una tupla (stdoutdata, stderrdata)
È anche possibile fare in questo modo:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls.start ()
>>> Roba #Non
>>> Ls.join ()
>>> Ls.results [0]
'5 n'
È necessario specificare 'shell = True' quando il comando che si desidera eseguire è in realtà costruito nel guscio. vale a dire: su Windows se utilizzare costruito in comandi quali 'dir' o 'copia': http://docs.python.org/library/subprocess.html#subprocess.Popen
Lo scopo di farlo in un thread è quando i comandi di cui sopra possono richiedere alcune ore, e che si desidera eseguire altre attività nel frattempo. È possibile controllare il processo è ancora in esecuzione di:
>>> Wc.is_alive ()
Falso
'True' sarebbe restituito se ancora in esecuzione. Per terminare prematuramente (cioè in fase di stallo) si ha la 'terminate ()', 'kill ()' o '(segnale) metodi send_signal che sono auto parlare. Quando si vuole attendere il filo alla fine, utilizzare la 'join ()' metodo: http://docs.python.org/library/threading.html#threading.Thread.join
Si vuole lanciare i seguenti comandi bash senza filettatura:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
ecco come si può fare:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('grep pdf')
>>> Wc = WrapCommand ('wc -l')
>>> Wc (GrepPdf (Ls))
'5 n'
Evitare di fare questo per processi in cui una grande quantità di dati viene convogliato tra ogni comando.
invece, farlo in questo modo:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls ()
'5 n'
Preferisco il metodo filettato invece se questo potrebbe richiedere molto tempo e che si desidera eseguire altre attività nel frattempo.
È possibile specificare un altro shell per l'esecuzione di comandi:
>>> Ls = WrapCommand ('ls', shell = "C: /windows/System32/WindowsPowerShell/v1.0/powershell.exe 'vero, = eseguibili)
>>> Ls print ()
& Nbsp; di repertorio: C: Users Yves python_tests
Modalità LastWriteTime Lunghezza Nome
---- ------------- ------ ----
-a --- 27/01/2011 00:14 7006 commandwrapper.py
-a --- 27/01/2011 00:15 7048 commandwrapper.pyc
È inoltre possibile utilizzare Context Management (with_item): http://docs.python.org/reference/compound_stmts.html#grammar-token-with_item
esempio:
>>> Con WrapCommand ('ls -l') come Ls:
... Con WrapCommand ('pdf grep') come GrepPdf:
... Con WrapCommand ('wc -l') come Wc:
... Wc.stdin = GrepPdf
... GrepPdf.stdin = Ls
... Wc.start ()
... #Non Stuff
... Wc.join ()
...
>>> Wc.results
('5 n', '')
Si può anche semplicemente vogliono avere un objet sottoprocesso:
>>> ls = WrapCommand ('ls -l')
>>> Lscmd = ls.makeCmd ()
>>>
l'oggetto restituito (lscmd nell'esempio sopra) è un oggetto subprocess.Popen normale
WrapOnceCommand è uguale WrapCommand, ma l'attributo cmd che viene creato un oggetto subprocess.Popen volta per tutte Dunque la methode run (o l'oggetto) può essere chiamato solo una volta. L'obiettivo è di lanciare un comando in un thread, e di avere il comando facilmente avviare / fermato da altrove

Cosa c'è di nuovo in questa versione:.

  • dell'autore Cambiato informazioni di contatto.

Cosa c'è di nuovo in versione 0.4:

  • L'Avvertimento qui: http: //docs.python. org / riferimento / datamodel.html oggetto # .__ del __
  • E becasue oggetti distrutti in cui non automaticamente rimossi dal garbage collector come descritto qui:. Http://docs.python.org/library/gc.html#gc.garbage Che potrebbe causare aumento di utilizzo di memoria

Requisiti :

  • Python

Altri software di sviluppo Yves-Gwenael Bourhis

progbar
progbar

14 Apr 15

botalert
botalert

15 Apr 15

Commenti a commandwrapper

I commenti non trovato
Aggiungi commento
Accendere le immagini!