Saída do subprocesso Python3

Eu estou querendo executar o utilitário de contagem de palavras do Linux wc para determinar o número de linhas atualmente no / var / log / syslog, para que eu possa detectar que está crescendo. Eu tentei vários testes e, enquanto recebo os resultados do wc, ele inclui tanto a contagem de linhas quanto o comando (por exemplo, var / log / syslog).

Então ele está retornando: 1338 / var / log / syslog Mas eu só quero a contagem de linhas, então eu quero remover a porção / var / log / syslog, e apenas manter 1338.

Eu tentei convertê-lo para string de bytestring e, em seguida, tirando o resultado, mas sem alegria. Mesma história para converter em string e stripping, decoding, etc - todos falham em produzir a saída que estou procurando.

Estes são alguns exemplos do que eu recebo, com 1338 linhas no syslog:

b'1338 / var / log / syslog \ n '1338 / var / log / syslog

Aqui está um código de teste que eu escrevi para tentar quebrar essa porca, mas nenhuma solução:

import subprocess

#check_output returns byte string
stdoutdata = subprocess.check_output("wc --lines /var/log/syslog", shell=True)
print("2A stdoutdata: " + str(stdoutdata))
stdoutdata = stdoutdata.decode("utf-8")
print("2B stdoutdata: " + str(stdoutdata))    
stdoutdata=stdoutdata.strip()
print("2C stdoutdata: " + str(stdoutdata))    

A saída disso é:

2A stdoutdata: b'1338 / var / log / syslog \ n '

2B stdoutdata: 1338 / var / log / syslog

2d stdoutdata: 1338 / var / log / syslog

Stdoutdata 2D: 1338 / var / log / syslog

questionAnswers(4)

yourAnswerToTheQuestion