Salida de subproceso Python3
Estoy deseando ejecutar la utilidad de conteo de palabras de Linux wc para determinar el número de líneas actualmente en / var / log / syslog, para poder detectar que está creciendo. He intentado varias pruebas, y mientras recupero los resultados de wc, incluye tanto el recuento de líneas como el comando (por ejemplo, var / log / syslog).
Así que está volviendo: 1338 / var / log / syslog Pero solo quiero el recuento de líneas, así que quiero eliminar la parte / var / log / syslog, y solo mantener 1338.
He intentado convertirlo en cadena de bytring, y luego eliminar el resultado, pero no hay alegría. La misma historia para convertir en cadena y eliminar, decodificar, etc., todos fallan en producir la salida que estoy buscando.
Estos son algunos ejemplos de lo que obtengo, con 1338 líneas en syslog:
b'1338 / var / log / syslog \ n '1338 / var / log / syslogAquí hay un código de prueba que he escrito para intentar romper esta tuerca, pero no hay solución:
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))
La salida de esto es:
2A stdoutdata: b'1338 / var / log / syslog \ n '
2B stdoutdata: 1338 / var / log / syslog
2C stdoutdata: 1338 / var / log / syslog
Datos estándar en 2D: 1338 / var / log / syslog