commandwrapper on Python-moduuli kääri komentotulkin komento osaksi Python kierteillä esine.
Käyttö:
Haluat käynnistää seuraavat bash komennot kierre:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
tässä miten voit tehdä sen:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('grep pdf)
>>> Wc = WrapCommand ('wc -l')
>>> Wc.stdin = GrepPdf
>>> GrepPdf.stdin = Ls
>>> Wc.start ()
>>> #Do Juttuja
...
>>> Wc.join ()
>>> Wc.results
(5 n ',' ')
"tulokset" omaisuus on monikon (stdoutdata, stderrdata)
Voit myös tehdä sen näin:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls.start ()
>>> #Do Juttuja
>>> Ls.join ()
>>> Ls.results [0]
"5 n '
Sinun täytyy määritellä "shell = True 'kun komennon haluat suorittaa on todella rakennettu kuori. eli: Windows Jos käytät rakennettu komentoja kuten "dir" tai "copy": http://docs.python.org/library/subprocess.html#subprocess.Popen
Tarkoitus tehdä se lanka on, kun edellä komennot voi kestää muutaman tunnin, ja että haluat suorittaa muita tehtäviä välin. Voit tarkistaa prosessi on edelleen käynnissä:
>>> Wc.is_alive ()
Väärä
"True" olisi palautettava, jos vielä käynnissä. Irtisanoa ennenaikaisesti (ts umpikujassa) sinulla on "lopettaa ()", "tappaa ()" tai "send_signal (signaali) menetelmiä, jotka ovat itsestään puhuminen. Kun haluat odottaa langan päähän, käytä "liittyä () 'menetelmä: http://docs.python.org/library/threading.html#threading.Thread.join
Haluat käynnistää seuraavat bash komennot pujottamatta:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
tässä miten voit tehdä sen:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('grep pdf)
>>> Wc = WrapCommand ('wc -l')
>>> Wc (GrepPdf (Ls))
"5 n '
Vältä tätä prosesseissa, joissa suuri määrä dataa johdetaan kunkin komennon.
sen sijaan, tee se näin:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls ()
"5 n '
Mieluummin kierteinen menetelmän sijaan, jos tämä voi kestää kauan ja että haluat suorittaa muita tehtäviä välin.
Voit määrittää toisen shell käynnissä komennot:
>>> Ls = WrapCommand ('ls', shell = True, suoritettavan = "C: /windows/System32/WindowsPowerShell/v1.0/powershell.exe ')
>>> Print Ls ()
& Nbsp; Directory: C: Users Yves python_tests
Tila LastWriteTime Pituus Nimi
---- ------------- ------ ----
-a --- 27/01/2011 00:14 7006 commandwrapper.py
-a --- 27/01/2011 00:15 7048 commandwrapper.pyc
Voit myös käyttää Context Management (with_item): http://docs.python.org/reference/compound_stmts.html#grammar-token-with_item
Esimerkiksi:
>>> Kanssa WrapCommand ('ls -l') Ls:
... Kanssa WrapCommand ('grep pdf) kuin GrepPdf:
... Kanssa WrapCommand ('wc -l') kuin Wc:
... Wc.stdin = GrepPdf
... GrepPdf.stdin = Ls
... Wc.start ()
... #Do Juttuja
... Wc.join ()
...
>>> Wc.results
(5 n ',' ')
Voit myös yksinkertaisesti halua olla aliprosessi Objet:
>>> Ls = WrapCommand ('ls -l')
>>> Lscmd = ls.makeCmd ()
>>>
palasi esine (lscmd yllä olevassa esimerkissä) on standardi subprocess.Popen esine
WrapOnceCommand on sama kuin WrapCommand, mutta cmd ominaisuuden perusteella, joka subprocess.Popen objekti luodaan kerralla siis ajaa methode (tai objekti) voidaan kutsua vain kerran. Tavoitteena on käynnistää komennon kierre, ja on tämän komennon helposti aloittaa / pysäyttää muualta.
Mitä uutta strong> tässä julkaisussa:
- Vaihtoi tekijän yhteystiedot.
Mitä uutta strong> versiossa 0.4:
- Varoitus täällä: http: //docs.python. org / viite / datamodel.html # esine .__ del __
- Ja becasue tuhosi kohteet, joissa ei automaticaly poistettu roskienkerääjä tässä kuvatulla: http://docs.python.org/library/gc.html#gc.garbage joka voi aiheuttaa muistin käyttö kasvaa.
Vaatimukset :
- Python
Kommentteja ei löytynyt