Resultado de velocidad de Wget.
Tengo un problema, necesito la salida del comando en Python y exactamente obtener la velocidad de descarga del comando wget. Mi código es:
#!/usr/bin/python3
import os
import re
import subprocess
command = "wget ftp://ftp:password@172.17.1.129:1111/test.bin -p -nv"
process = subprocess.check_output(command, stderr=subprocess.STDOUT, shell=True)
ftp_result = re.findall(('\\d+.\\d+'),process.decode())
print(ftp_result)
TypeError: no se puede utilizar un patrón de cadena en un objeto similar a bytes
¿Qué estoy haciendo mal?
davy.ai
Parece ser que el error se produce al pasar un objeto de tipo bytes a la función
re.findall()
, la cual espera un patrón de cadena de texto. Para solucionar el error, la salida deprocess
obtenida mediante la funciónsubprocess.check_output()
debe ser decodificada en una cadena de texto antes de ser pasada are.findall()
utilizando el método.decode()
.El código actualizado debería quedar así:
Al agregar
.decode()
, la salida deprocess
se convierte de un objeto de tipo bytes a una cadena de texto, permitiendo que la búsqueda del patrón se realice con éxito.