Introducción al uso de Python en Windows para el scripting y la automatización
A continuación, te proporcionamos una guía detallada para configurar el entorno para desarrolladores y empezar a usar Python para crear scripts y automatizar las operaciones del sistema de archivos en Windows.
Nota
Este artículo trata sobre la configuración del entorno para usar algunas de las bibliotecas útiles de Python que pueden automatizar las tareas entre plataformas, como buscar en el sistema de archivos, acceder a Internet, analizar tipos de archivo, etc., desde un enfoque centrado en Windows. En el caso de las operaciones específicas de Windows, consulta ctypes, una biblioteca de funciones externas compatible con C para Python, winreg, funciones que exponen la API de registro de Windows a Python, y Python/WinRT, que habilita el acceso a las API de Windows Runtime desde Python.
Al usar Python para escribir scripts que realicen operaciones del sistema de archivos, te recomendamos que instales Python desde Microsoft Store. La instalación a través de Microsoft Store utiliza el intérprete de Python3 básico, pero controla el establecimiento de la configuración del valor PATH para el usuario actual (lo que evita la necesidad de contar con acceso de administrador) y, además, proporciona actualizaciones automáticas.
Si usas Python para el desarrollo web en Windows, te recomendamos que definas una configuración diferente con el Subsistema de Windows para Linux. Busca un tutorial en nuestra guía: Introducción al uso de Python para el desarrollo web en Windows. Si no estás familiarizado con Python, prueba nuestra guía: Introducción al uso de Python en Windows para principiantes. En algunos escenarios avanzados (por ejemplo, si necesitas acceder a los archivos instalados de Python o modificarlos, hacer copias en archivos binarios o usar archivos DLL de Python directamente), es posible que quieras considerar la posibilidad de descargar una versión específica de Python directamente desde python.org o una alternativa, como Anaconda, Jython, PyPy, WinPython, IronPython, etc. Solo te lo recomendamos si eres un programador de Python más avanzado y tienes un motivo específico para elegir una implementación alternativa.
Para instalar Python con Microsoft Store:
Ve al menú Inicio (icono de Windows de la esquina inferior izquierda), escribe "Microsoft Store" y selecciona el vínculo para abrir Store.
Una vez que lo hayas abierto, selecciona Buscar en el menú superior derecho y escribe "Python". Seleccione la versión de Python que quiera usar en los resultados de la opción Aplicaciones. Se recomienda usar la más reciente, a menos que tenga una razón para no hacerlo (por ejemplo, alinearse con la versión que se usó en un proyecto existente en el que planea trabajar). Una vez que haya determinado qué versión quiere instalar, seleccione Obtener.
Una vez que Python haya completado el proceso de descarga e instalación, abre Windows PowerShell mediante el menú Inicio (icono de Windows de la esquina inferior izquierda). Cuando PowerShell esté abierto, escribe
Python --version
para confirmar que Python3 se ha instalado en la máquina.La instalación de Microsoft Store de Python incluye PIP, el administrador de paquetes estándar. PIP te permite instalar y administrar paquetes adicionales que no forman parte de la biblioteca estándar de Python. Para confirmar que también dispones de PIP para instalar y administrar paquetes, escribe
pip --version
.
Al usar VS Code como editor de texto/entorno de desarrollo integrado (IDE), puedes aprovechar IntelliSense (una ayuda de finalización de código), el detector de errores (permite evitar que se produzcan errores en el código), el soporte técnico de depuración (ayuda a buscar errores en el código después de ejecutarlo), los fragmentos de código (plantillas para pequeños bloques de código reutilizables) y las pruebas unitarias (para probar la interfaz del código con distintos tipos de entrada).
Descarga VS Code para Windows y sigue las instrucciones de instalación: https://code.visualstudio.com.
Tendrás que instalar la extensión de Microsoft Python para aprovechar las características de soporte técnico de VS Code. Más información.
Para abrir la ventana Extensiones de VS Code, escribe Control + Mayús + X (o usa el menú para desplazarte a Ver>Extensiones).
En el cuadro Search Extensions in Marketplace (Buscar extensiones en Marketplace) de la parte superior, escriba: Python.
Busca la extensión Python (ms-python.python) de Microsoft y selecciona el botón Instalar de color verde.
VS Code contiene un terminal integrado que te permite abrir una línea de comandos de Python con PowerShell, lo que establece un flujo de trabajo sin interrupciones entre el editor de código y la línea de comandos.
Abre el terminal en VS Code, selecciona Ver>Terminal, o bien usa el acceso directo Control + ` (mediante el carácter de tilde aguda).
Nota
El terminal predeterminado debe ser PowerShell, pero si necesita cambiarlo, use Control + Mayús + P para acceder a la paleta de comandos. Escribe Terminal: Select Default Shell y se mostrará una lista de opciones de terminal con PowerShell, símbolo del sistema, WSL, etc. Selecciona el que quieras usar y escribe Control + Mayús + ` (con el carácter de tilde aguda) para crear un nuevo terminal.
En el terminal de VS Code, para abrir Python, escribe
python
.Para probar el intérprete de Python, escribe
print("Hello World")
. Python devolverá la instrucción "Hola mundo".Para salir de Python, puedes escribir
exit()
oquit()
, o seleccionar Control-Z.
Si planeas colaborar con otras personas en el código de Python u hospedar el proyecto en un sitio de código abierto (como GitHub), VS Code admite el control de versiones con GIT. La pestaña Control de código fuente de VS Code realiza un seguimiento de todos los cambios y tiene comandos GIT comunes (agregar, confirmar, enviar cambios e incorporar cambios) integrados directamente en la interfaz de usuario. Primero, debes instalar GIT para alimentar el panel de control de código fuente.
Descarga e instala GIT para Windows desde el sitio web git-scm.
Se incluye un asistente para instalación que te formulará una serie de preguntas sobre la configuración de la instalación de GIT. Te recomendamos que uses todas las opciones de configuración predeterminadas, a menos que tengas un motivo concreto para cambiar algo.
Si nunca has trabajado con GIT, las guías de GitHub pueden resultarte de ayuda para empezar.
Las tareas comunes de administración del sistema pueden tardar un tiempo considerable, pero con un script de Python, puedes automatizarlas para que no tarden nada. Por ejemplo, Python puede leer el contenido del sistema de archivos del equipo y realizar operaciones, como imprimir un esquema de los archivos y directorios, mover carpetas de un directorio a otro o cambiar el nombre de cientos de archivos. Normalmente, las tareas de este tipo podrían tardar mucho tiempo en completarse manualmente. Usa un script de Python en su lugar.
Comencemos con un script sencillo que recorre un árbol de directorios y muestra la estructura de directorios.
Abre PowerShell mediante el menú Inicio (icono de Windows de la esquina inferior izquierda).
Crea un directorio para el proyecto
mkdir python-scripts
y, a continuación, abre ese directorio:cd python-scripts
.Crea algunos directorios para usarlos con el script de ejemplo:
mkdir food, food\fruits, food\fruits\apples, food\fruits\oranges, food\vegetables
Crea algunos archivos dentro de esos directorios para usarlos con el script:
new-item food\fruits\banana.txt, food\fruits\strawberry.txt, food\fruits\blueberry.txt, food\fruits\apples\honeycrisp.txt, food\fruits\oranges\mandarin.txt, food\vegetables\carrot.txt
Crea un nuevo archivo de Python en el directorio de scripts de Python:
mkdir src new-item src\list-directory-contents.py
Abre el proyecto en VS Code. Para ello, escribe
code .
.Abre la ventana Explorador de archivos de VS Code. Para ello, escribe Control + Mayús + E (o usa el menú para ir a Ver>Explorador) y selecciona el archivo list-directory-contents.py que acabas de crear. La extensión de Microsoft Python cargará automáticamente un intérprete de Python. Puedes ver qué intérprete se cargó en la parte inferior de la ventana de VS Code.
Nota
Python es un lenguaje interpretado, lo que significa que actúa como una máquina virtual y emula un equipo físico. Hay diferentes tipos de intérpretes de Python que puedes usar: Python 2, Python 3, Anaconda, PyPy, etc. A fin de ejecutar el código de Python y obtener IntelliSense de Python, debes indicar a VS Code el intérprete que debe usar. Te recomendamos que uses el intérprete que VS Code elige de forma predeterminada (Python 3 en nuestro caso), a menos que tengas un motivo específico para elegir algo diferente. Para cambiarlo, selecciona el intérprete que se muestra actualmente en la barra azul de la parte inferior de la ventana de VS Code o abre la Paleta de comandos (Control + Mayús + P) y escribe el comando Python: Select Interpreter. Se mostrará una lista de los intérpretes de Python que tienes instalados actualmente. Obtén más información sobre la configuración de entornos de Python.
Pega el siguiente código en el archivo list-directory-contents.py y, a continuación, selecciona Guardar:
import os root = os.path.join('..', 'food') for directory, subdir_list, file_list in os.walk(root): print('Directory:', directory) for name in subdir_list: print('Subdirectory:', name) for name in file_list: print('File:', name) print()
Abre el terminal integrado de VS Code (Control + ` mediante el carácter de tilde aguda) y escribe el directorio src donde acabas de guardar el script de Python:
cd src
Ejecuta el script de PowerShell con:
python3 .\list-directory-contents.py
Deberías obtener un resultado similar al siguiente:
Directory: ..\food Subdirectory: fruits Subdirectory: vegetables Directory: ..\food\fruits Subdirectory: apples Subdirectory: oranges File: banana.txt File: blueberry.txt File: strawberry.txt Directory: ..\food\fruits\apples File: honeycrisp.txt Directory: ..\food\fruits\oranges File: mandarin.txt Directory: ..\food\vegetables File: carrot.txt
Usa Python para imprimir la salida del directorio del sistema de archivos en su propio archivo de texto. Para ello, escribe este comando directamente en el terminal de PowerShell:
python3 list-directory-contents.py > food-directory.txt
.
Enhorabuena. Acabas de escribir un script de administración de sistemas automatizado que lee el directorio y los archivos que has creado y usa Python para mostrar y, luego, imprimir la estructura de directorios en su propio archivo de texto.
Nota
Si no puede instalar Python 3 desde Microsoft Store, consulte este problema para un ejemplo de cómo controlar la creación de la ruta de acceso para este script de ejemplo.
En este ejemplo se usan los archivos y directorios que acabas de crear y se cambia el nombre de cada uno de los archivos mediante la adición de la fecha de la última modificación del archivo al principio del nombre de archivo.
En la carpeta src del directorio python-scripts, crea un nuevo archivo de Python para el script:
new-item update-filenames.py
Abre el archivo update-filenames.py, pega el código siguiente en el archivo y guárdalo:
Nota
os. getmtime devuelve una marca de tiempo en tics, que no se puede leer fácilmente. Primero, se debe convertir en una cadena de fecha y hora estándar.
import datetime import os root = os.path.join('..', 'food') for directory, subdir_list, file_list in os.walk(root): for name in file_list: source_name = os.path.join(directory, name) timestamp = os.path.getmtime(source_name) modified_date = str(datetime.datetime.fromtimestamp(timestamp)).replace(':', '.') target_name = os.path.join(directory, f'{modified_date}_{name}') print(f'Renaming: {source_name} to: {target_name}') os.rename(source_name, target_name)
Prueba el script update-filenames.py. Para ello, ejecuta
python3 update-filenames.py
y vuelve a ejecutar el script list-directory-contents.py:python3 list-directory-contents.py
.Debería aparecer un resultado como el siguiente:
Renaming: ..\food\fruits\banana.txt to: ..\food\fruits\2019-07-18 12.24.46.385185_banana.txt Renaming: ..\food\fruits\blueberry.txt to: ..\food\fruits\2019-07-18 12.24.46.391170_blueberry.txt Renaming: ..\food\fruits\strawberry.txt to: ..\food\fruits\2019-07-18 12.24.46.389174_strawberry.txt Renaming: ..\food\fruits\apples\honeycrisp.txt to: ..\food\fruits\apples\2019-07-18 12.24.46.395160_honeycrisp.txt Renaming: ..\food\fruits\oranges\mandarin.txt to: ..\food\fruits\oranges\2019-07-18 12.24.46.398151_mandarin.txt Renaming: ..\food\vegetables\carrot.txt to: ..\food\vegetables\2019-07-18 12.24.46.402496_carrot.txt PS C:\src\python-scripting\src> python3 .\list-directory-contents.py ..\food\ Directory: ..\food Subdirectory: fruits Subdirectory: vegetables Directory: ..\food\fruits Subdirectory: apples Subdirectory: oranges File: 2019-07-18 12.24.46.385185_banana.txt File: 2019-07-18 12.24.46.389174_strawberry.txt File: 2019-07-18 12.24.46.391170_blueberry.txt Directory: ..\food\fruits\apples File: 2019-07-18 12.24.46.395160_honeycrisp.txt Directory: ..\food\fruits\oranges File: 2019-07-18 12.24.46.398151_mandarin.txt Directory: ..\food\vegetables File: 2019-07-18 12.24.46.402496_carrot.txt
Usa Python para imprimir los nuevos nombres del directorio del sistema de archivos precedidos de la marca de tiempo de la última modificación en su propio archivo de texto. Para ello, escribe este comando directamente en el terminal de PowerShell:
python3 list-directory-contents.py > food-directory-last-modified.txt
.
Esperamos que hayas aprendido algunas cosas interesantes sobre el uso de scripts de Python para automatizar las tareas básicas de administración de sistemas. Por supuesto, te queda mucho más por descubrir, pero esperamos haberte proporcionado un comienzo agradable. Hemos compartido algunos recursos adicionales para que puedas seguir aprendiendo.
- Documentos de Python: Acceso a los directorios y a los archivos: documentación de Python sobre el trabajo con sistemas de archivos y el uso de módulos para leer las propiedades de los archivos, manipular rutas de acceso de forma fácil y crear archivos temporales.
- Aprender a usar Python: tutorial de String_Formatting. Más información sobre el uso del operador "%" para el formato de cadenas.
- 10 métodos del sistema de archivos de Python que debes conocer: artículo de Medium sobre cómo manipular archivos y carpetas con
os
yshutil
. - The Hitchhikers Guide to Python: Administración de los sistemas. Una "Guía de bien fundamentada" que ofrece información general y procedimientos recomendados sobre temas relacionados con Python. En esta sección se describen las herramientas y los marcos de administración del sistema. Esta guía se hospeda en GitHub para que pueda archivar problemas y hacer contribuciones.
Comentarios de Windows developer
Windows developer es un proyecto de código abierto. Seleccione un vínculo para proporcionar comentarios: