commandwrapper

Logiciel capture d'écran:
commandwrapper
Détails logiciels:
Version: 0.7
Date de transfert: 14 Apr 15
Développeur: Yves-Gwenael Bourhis
Licence: Gratuit
Popularité: 2

Rating: nan/5 (Total Votes: 0)

commandwrapper est un module Python pour envelopper une commande shell dans un objet Python filetée.
Utilisation:
Vous voulez lancer les commandes suivantes bash dans un thread:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
voici comment vous pouvez le faire:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand (grep pdf)
>>> Wc = WrapCommand ('wc -l')
>>> Wc.stdin = GrepPdf
>>> GrepPdf.stdin = Ls
>>> Wc.start ()
>>> #Ne Trucs
...
>>> Wc.join ()
>>> Wc.results
('5 n', '')
la propriété des «résultats est un tuple (stdoutdata, stderrdata)
Vous pouvez également faire de cette façon:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls.start ()
>>> #Ne Trucs
>>> Ls.join ()
>>> Ls.results [0]
'5 n'
Vous devrez spécifier 'shell = True' lorsque la commande que vous souhaitez exécuter est effectivement construit dans la coque. ce est à dire: sur Windows Si vous utilisez construit dans les commandes comme «dir» ou «copie»: http://docs.python.org/library/subprocess.html#subprocess.Popen
Le but de le faire dans un thread est lorsque les commandes ci-dessus peuvent prendre quelques heures, et que vous voulez effectuer d'autres tâches dans l'intervalle. Vous pouvez vérifier le processus est toujours en cours d'exécution avec:
>>> Wc.is_alive ()
Faux
«Vrai» seraient renvoyés se ils sont encore en cours d'exécution. Pour y mettre fin prématurément (ce est à dire qu'il impasse) vous avez la 'fin () »,« kill () »ou« (signal) send_signal méthodes qui sont auto parler. Lorsque vous voulez attendre pour le fil à la fin, utiliser la méthode «join () ': http://docs.python.org/library/threading.html#threading.Thread.join
Vous voulez lancer les commandes bash suivantes sans filetage:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
voici comment vous pouvez le faire:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand (grep pdf)
>>> Wc = WrapCommand ('wc -l')
>>> Wc (GrepPdf (Ls))
'5 n'
Éviter de le faire pour les processus où une grande quantité de données est acheminé entre chaque commande.
à la place, faire de cette façon:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> (Ls)
'5 n'
Préférer la méthode filetée place si cela peut prendre un certain temps et que vous voulez effectuer d'autres tâches dans l'intervalle.
Vous pouvez spécifier un autre shell pour les commandes en cours d'exécution:
>>> Ls = WrapCommand ('ls', coquille = true, exécutables = 'C: /windows/System32/WindowsPowerShell/v1.0/powershell.exe')
>>> Ls d'impression ()
& Nbsp; Répertoire: C: Users Yves python_tests
Mode LastWriteTime Longueur Nom
---- ------------- ------ ----
-a --- 27/01/2011 00:14 7006 commandwrapper.py
-a --- 27/01/2011 00:15 7048 commandwrapper.pyc
Vous pouvez également utiliser Contexte de gestion (with_item): http://docs.python.org/reference/compound_stmts.html#grammar-token-with_item
exemple:
>>> Avec WrapCommand ('ls -l') que LS:
... Avec WrapCommand ('pdf grep') que GrepPdf:
... Avec WrapCommand ('wc -l') comme Wc:
... Wc.stdin = GrepPdf
... Ls = GrepPdf.stdin
Wc.start ... ()
... #Ne Trucs
Wc.join ... ()
...
>>> Wc.results
('5 n', '')
Vous pouvez aussi tout simplement d'avoir un objet de sous-processus:
>>> ls = WrapCommand ('ls -l')
>>> Lscmd ls.makeCmd = ()
>>>
l'objet retourné (de lscmd dans l'exemple ci-dessus) est un objet subprocess.Popen norme
WrapOnceCommand est le même que WrapCommand, mais l'attribut cmd qui est un objet subprocess.Popen sera créé une fois pour toutes pourquoi la Méthode d'exécution (ou l'objet) ne peut être appelée une fois. L'objectif pour lancer une commande dans un fil, et d'avoir cette commande facilement démarrer / arrêté d'ailleurs

Ce qui est nouveau dans cette version:.

  • les coordonnées de l'auteur changé.

Quoi de neuf dans la version 0.4:

  • Le Attention ici: http: //docs.python. org / référence / datamodel.html # objet .__ del __
  • Et becasue objets détruits lorsqu'ils ne sont pas automatiquement supprimés par le garbage collector comme décrit ici:. Http://docs.python.org/library/gc.html#gc.garbage qui pourrait causer l'augmentation de l'utilisation de mémoire

Exigences :

  • Python

D'autres logiciels de développeur Yves-Gwenael Bourhis

progbar
progbar

14 Apr 15

botalert
botalert

15 Apr 15

Commentaires à commandwrapper

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!