En este artículo veremos como ejecutar comandos de windows desde Python y guardar el resultado en un archivo de texto. Empecemos con nuestro artículo, ejecutar systeminfo y guardar en archivo con Python.
En primer lugar, vamos a ver y conocer el comando systeminfo de Windows, que permite al administrador, conocer la configuración básica del sistema.
Para ello, vamos a: Inicio ->Ejecutar->cmd y en la consola de Windows escribiremos: systeminfo
El código
import os
comando = "systeminfo"
resultado = os.popen(comando)
datos= resultado.readlines()
nombre_pc= datos[1].split(" ")[-1].split("\n")[0]
nombre_fichero= "informacion-"+nombre_pc+".txt"
fichero = open(nombre_fichero,"w")
fichero.writelines(datos)
fichero.close()
print (nombre_fichero)
Como ejecutar comando Windows y extraer información de un campo
En el siguiente código, se importa la librería os que será la que permita ejecutar comandos de Windows en el script.
>> import os
>>> comando = «systeminfo»
Ejecutaremos el comando y almacenaremos el resultado en una variable
>> resultado = os.popen(comando)
>>> datos = resultado.readlines()
>>> datos
Si imprimimos el contenido de la variable datos obtendremos como resultado una lista con los datos del comando systeminfo en cada una de las posiciones del array.
>[‘\n’, ‘Nombre de host: EQUIPMENT\n’, ‘Nombre del sistema operativo: Microsoft Windows 10 Fucker edition\n’, …..<contenido omitido>…..<contenido omitido>….]
Para obtener el nombre del host, debemos llamar a la posicion 1 del array y quitar todos los espacios en blanco que se observan en la imagen anterior.
>>>>> datos[1].split(» «)
[‘Nombre’, ‘de’, ‘host:’, », », », », », », », », », », », », », », », », », », », », », », », », », », », ‘EQUIPMENT\n’]
Vemos que el nombre del host está al final del array. Para obtenerlo añadimos el indice[-1] que nos posiciona en la última posición. (Empieza a contar desde atras).
>>>>>>>> datos[1].split(» «)[-1]
‘EQUIPMENT\n’
Ahora quitamos el salto de línea «\n»
>>>>>>>> >>> datos[1].split(» «)[-1].split(«\n»)
[‘EQUIPMENT’, »]
Y posicionaremos en el indice [0] que es donde se encuentra ahora el nombre del Host
>>>>>>>>>>> datos[1].split(» «)[-1].split(«\n»)[0]
‘EQUIPMENT’
Guardando el resultado en un fichero
El fichero tendra como nombre, informacion-nombredelhost.txt y contendrá toda la información que resulta al ejecutar el comando systeminfo
nombre_fichero= "informacion-"+nombre_pc+".txt"
fichero = open(nombre_fichero,"w")
fichero.writelines(datos)
fichero.close()
print (nombre_fichero)
Espero que este artículo, aparte de haberme servido para practicar un poco este lenguaje, también haya podido ser de utilidad, a alguno de mis lectores. Reciban un fuerte saludo.
great post thanks!!