commandwrapper

Tela Software:
commandwrapper
Detalhes de Software:
Versão: 0.7
Data de upload: 14 Apr 15
Licença: Livre
Popularidade: 2

Rating: nan/5 (Total Votes: 0)

commandwrapper é um módulo Python para embrulhar um comando shell em um objeto Python rosca.
Uso:
Você deseja iniciar os seguintes comandos bash em uma discussão:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
aqui está como você pode fazê-lo:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('pdf grep')
>>> Wc = WrapCommand ("wc -l ')
>>> Wc.stdin = GrepPdf
>>> GrepPdf.stdin = Ls
>>> Wc.start ()
>>> Coisas #Do
...
>>> Wc.join ()
>>> Wc.results
('5 n', '')
propriedade os "resultados" é uma tupla (stdoutdata, stderrdata)
Você também pode fazê-lo desta forma:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> Ls.start ()
>>> Coisas #Do
>>> Ls.join ()
>>> Ls.results [0]
'5 n'
Você precisaria especificar 'shell = True' quando o comando que pretende executar é realmente construído para o shell. ou seja: no Windows, se você usar construído em comandos como "dir" ou "cópia": http://docs.python.org/library/subprocess.html#subprocess.Popen
O propósito de fazê-lo em uma lista de discussão é quando os comandos acima pode demorar algumas horas, e que pretende realizar outras tarefas no entretanto. Você pode verificar o processo ainda está em execução com:
>>> Wc.is_alive ()
Falso
'True' seria devolvido se ainda em execução. Para encerrar prematuramente (isto é, num beco sem saída), você tem o "kill () '' terminar ()" ou "(Sinal) métodos send_signal que são auto falar. Quando você quiser esperar para o segmento ao fim, usar o método 'join ()': http://docs.python.org/library/threading.html#threading.Thread.join
Você deseja iniciar os seguintes comandos bash sem enfiar:
[User @ localhost ~] $ ls -l | grep pdf | wc -l
5
aqui está como você pode fazê-lo:
>>> Ls = WrapCommand ('ls -l')
>>> GrepPdf = WrapCommand ('pdf grep')
>>> Wc = WrapCommand ("wc -l ')
>>> Wc (GrepPdf (Ls))
'5 n'
Evitar fazendo isso por processos em que uma grande quantidade de dados é canalizada entre cada comando.
em vez disso, fazê-lo desta maneira:
>>> Ls = WrapCommand ('ls -l | grep pdf | wc -l', shell = True)
>>> (Ls)
'5 n'
Prefiro o método de rosca ao invés, se isso pode levar um longo tempo e que deseja realizar outras tarefas no entretanto.
Você pode especificar outro shell para executar comandos:
>>> Ls = WrapCommand ('ls', shell = true, executáveis ​​= 'C: /windows/System32/WindowsPowerShell/v1.0/powershell.exe')
>>> Ls Imprimir ()
& Nbsp; diretório: C: Users Yves python_tests
Modo LastWriteTime comprimento do nome
---- ------------- ------ ----
-a --- 27/01/2011 00:14 7006 commandwrapper.py
-a --- 27/01/2011 00:15 7048 commandwrapper.pyc
Você também pode usar Contexto Management (WITH_ITEM): http://docs.python.org/reference/compound_stmts.html#grammar-token-with_item
exemplo:
>>> Com WrapCommand ('ls -l') como Ls:
... Com WrapCommand ('grep pdf') como GrepPdf:
... Com WrapCommand ("wc -l ') como Wc:
... Wc.stdin = GrepPdf
... GrepPdf.stdin = Ls
... Wc.start ()
... #Do Stuff
... Wc.join ()
...
>>> Wc.results
('5 n', '')
Você também pode simplesmente querer ter um objet subprocess:
>>> ls = WrapCommand ('ls -l')
>>> Lscmd = ls.makeCmd ()
>>>
o objecto devolvido (lscmd no exemplo acima) é um objecto subprocess.popen padrão
WrapOnceCommand é o mesmo que WrapCommand, mas o atributo cmd que é um objecto subprocess.popen vai ser criada uma vez por todas Portanto o methode corrida (ou no objecto) só pode ser utilizada uma vez. A meta-lo para lançar um comando em uma lista de discussão, e para ter este comando facilmente começar / parou de outro lugar

O que é novo nesta versão:.

  • Mudou autor informações de contato.

O que é novo na versão 0.4:

  • O aviso aqui: http: //docs.python. org / referência / datamodel.html # objeto .__ del __
  • E becasue objetos destruídos onde não automaticamente removidos pelo coletor de lixo, conforme descrito aqui:. Http://docs.python.org/library/gc.html#gc.garbage o que poderia causar aumento de uso de memória

Requisitos :

  • Python

Outro software de desenvolvedor Yves-Gwenael Bourhis

progbar
progbar

14 Apr 15

botalert
botalert

15 Apr 15

Comentário para commandwrapper

Comentários não encontrado
Adicionar comentário
Ligue imagens!