commandwrapper

Software screenshot:
commandwrapper
Software informatie:
Versie: 0.7
Upload datum: 14 Apr 15
Ontwikkelaar: Yves-Gwenael Bourhis
Licentie: Gratis
Populariteit: 43

Rating: 5.0/5 (Total Votes: 1)

commandwrapper is een Python module om een ​​shell commando wikkel in een Python schroefdraad object.
Gebruik:
U wilt de volgende bash commando's in een thread te starten:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
hier is hoe je het kunt doen:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('grep pdf)
>>> Wc = WrapCommand ('wc -l')
>>> Wc.stdin = GrepPdf
>>> GrepPdf.stdin = Ls
>>> Wc.start ()
>>> #Do Stuff
...
>>> Wc.join ()
>>> Wc.results
('5 n', '')
de 'resultaten' eigenschap is een tupel (stdoutdata, stderrdata)
U kunt dit ook doen het op deze manier:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls.start ()
>>> #Do Stuff
>>> Ls.join ()
>>> Ls.results [0]
'5 n'
Je zou moeten opgeven 'shell = True' als de opdracht die u wilt uitvoeren daadwerkelijk is ingebouwd in de schelp. dat wil zeggen: op Windows als u gebruik ingebouwde commando's als 'dir' of 'copy': http://docs.python.org/library/subprocess.html#subprocess.Popen
Het doel van het doen van het in een thread is wanneer de bovenstaande commando's een paar uur kan duren, en dat u andere taken uit te voeren in de tussentijd. U kunt controleren het proces loopt nog steeds met:
>>> Wc.is_alive ()
Vals
'True' zou worden teruggegeven als nog loopt. Om het voortijdig beëindigen (dwz het muurvast) heb je de 'beëindigen ()', 'kill ()' of 'send_signal (signaal) methoden die zijn zelf spreken. Als je wilt wachten op de draad tot het einde, gebruik de 'join () methode: http://docs.python.org/library/threading.html#threading.Thread.join
U wilt de volgende bash commando's starten zonder threading:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
hier is hoe je het kunt doen:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('grep pdf)
>>> Wc = WrapCommand ('wc -l')
>>> Wc (GrepPdf (LS))
'5 n'
Vermijd dit voor processen waarbij een grote hoeveelheid data wordt doorgesluisd tussen elke opdracht doet.
in plaats daarvan, doe het op deze manier:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> LS ()
'5 n'
De voorkeur aan de schroefdraad methode in plaats als dit lang kan duren en dat je wilt andere taken uit te voeren in de tussentijd.
U kunt een andere shell voor het runnen van commando's op te geven:
>>> Ls = WrapCommand ('ls', shell = True, uitvoerbare = 'C: /windows/System32/WindowsPowerShell/v1.0/powershell.exe')
>>> Print Ls ()
& Nbsp; Gids: C: Users Yves python_tests
Modus LastWriteTime Lengte Naam
---- ------------- ------ ----
-a --- 27/01/2011 00:14 7006 commandwrapper.py
-a --- 27/01/2011 00:15 7048 commandwrapper.pyc
U kunt ook gebruik maken van Context Management (with_item): http://docs.python.org/reference/compound_stmts.html#grammar-token-with_item
voorbeeld:
>>> Met WrapCommand ('ls -l') als LS:
... Met WrapCommand ('grep pdf') als GrepPdf:
... Met WrapCommand ('wc -l') als Wc:
... Wc.stdin = GrepPdf
... GrepPdf.stdin = Ls
... Wc.start ()
... #Do Stuff
... Wc.join ()
...
>>> Wc.results
('5 n', '')
U kunt ook gewoon willen een subproces objet hebben:
>>> Ls = WrapCommand ('ls -l')
>>> Lscmd = ls.makeCmd ()
>>>
het geretourneerde object (lscmd in het voorbeeld hierboven) is een standaard subprocess.Popen object
WrapOnceCommand is hetzelfde als WrapCommand, maar de cmd eigenschap die een subprocess.Popen object eenmaal gecreëerd en alle derhalve de run methode (of object) slechts eenmaal worden genoemd. Het doel is om een ​​opdracht te starten in een thread, en om deze opdracht te gemakkelijk hebben starten / stoppen van elders

Wat is nieuw in deze release:.

  • Veranderd auteur contact info.

Wat is nieuw in versie 0.4:

  • De Waarschuwing hier: http: //docs.python. org / referentie / datamodel.html # object .__ del __
  • En omdat hun vernietigde voorwerpen waar niet automaticaly verwijderd door de garbage collector zoals hier beschreven:. Http://docs.python.org/library/gc.html#gc.garbage Welke geheugengebruik toename zou kunnen veroorzaken

Eisen

  • Python

Andere software van ontwikkelaar Yves-Gwenael Bourhis

botalert
botalert

15 Apr 15

progbar
progbar

14 Apr 15

Reacties op commandwrapper

Reacties niet gevonden
Commentaar toe te voegen
Zet op de beelden!