Tubulação BASH-Python (2.6)

1

Eu preciso traduzir essa linha do Bash para o Python:

sample1=($(/bin/cat /proc/meminfo | egrep 'MemTotal|MemFree|Cached|SwapTotal|SwapFree|AnonPages|Dirty|Writeback|PageTables|HugePages_' | awk ' { print } ' | pr -t -T --columns=15 --width=240))

Eu sei que preciso usar Popen e comunicar, mas não sei como reorganizá-lo.

Alguma ajuda?

    
por ShuKaibutsu 03.07.2015 / 17:15

1 resposta

4

Você não precisa de popen - popen é o que você usa para iniciar um processo. Não precisamos iniciar outro processo.

E você não precisa estar enviando coisas de / para STDIN / STDOUT;

/proc/meminfo segue as mesmas regras que tudo no * nix.

  • Tudo é um arquivo

Você pode simplesmente abrir /proc/meminfo e processá-lo como faria com qualquer outro arquivo.

f = open('/proc/meminfo')
for l in f:
    # do stuff with the line from the file
  • Crie um dicionário dos itens de linha que você deseja
  • Encontre esses itens (escreva uma função is_interesting(line) ou algo assim)
  • Faça o processamento da string que você precisa
por Adrian 03.07.2015 / 17:33