[Diaoye aprende a programar] Módulo incorporado manual de MicroPython rmdir

Insertar descripción de la imagen aquí

MicroPython es una versión ligera del intérprete diseñada para ejecutar el lenguaje de programación Python 3 en sistemas integrados. En comparación con Python normal, el intérprete de MicroPython es pequeño (solo alrededor de 100 KB) y se compila en un archivo ejecutable binario para su ejecución, lo que resulta en una mayor eficiencia de ejecución. Utiliza un mecanismo de recolección de basura liviano y elimina la mayor parte de la biblioteca estándar de Python para adaptarse a microcontroladores con recursos limitados.

Las características principales de MicroPython incluyen:
1. La sintaxis y las funciones son compatibles con Python estándar, lo que facilita su aprendizaje y uso. Admite la mayoría de la sintaxis principal de Python.
2. Acceda y controle directamente el hardware, controle GPIO, I2C, SPI, etc. como Arduino.
3. Potente sistema de módulos, que proporciona sistema de archivos, red, interfaz gráfica y otras funciones.
4. Admite compilación cruzada para generar código nativo eficiente, que es entre 10 y 100 veces más rápido que el intérprete.
5. La cantidad de código es pequeña y el uso de memoria es pequeño, adecuado para ejecutarse en MCU y placas de desarrollo con poca memoria.
6. Licencia de código abierto, de uso gratuito. El entorno interactivo de Shell proporciona comodidad para el desarrollo y las pruebas.
7. El controlador de E/S incorporado admite una gran cantidad de plataformas de microcontroladores, como ESP8266, ESP32, STM32, micro:bit, placa de control y PyBoard, etc. Hay una comunidad activa.

Los escenarios de aplicación de MicroPython incluyen:
1. Crear rápidamente prototipos e interacciones de usuario para productos integrados.
2. Realice algunos pequeños proyectos de hardware programables.
3. Como herramienta educativa, ayuda a los principiantes a aprender programación en Python e IoT.
4. Cree firmware para dispositivos inteligentes para lograr control avanzado y conectividad en la nube.
5. Diversas aplicaciones de microcontroladores como Internet de las cosas, inteligencia integrada, robots, etc.

Cosas a tener en cuenta al utilizar MicroPython:
1. La memoria y el espacio Flash son limitados.
2. La eficiencia de explicación y ejecución no es tan buena como la del lenguaje C.
3. Algunas funciones de la biblioteca son diferentes a las de la versión estándar.
4. Optimice la sintaxis de la plataforma y corrija las diferencias con el Python estándar.
5. Uso razonable de los recursos de memoria para evitar la asignación frecuente de grandes bloques de memoria.
6. Utilice código nativo para mejorar el rendimiento de partes clave de la velocidad.
7. Utilice adecuadamente la abstracción para encapsular las operaciones de hardware subyacentes.

En términos generales, MicroPython lleva Python al campo de los microcontroladores, lo cual es una innovación importante que no solo reduce el umbral de programación sino que también proporciona buenas capacidades de control de hardware. Es muy adecuado para el desarrollo de diversos Internet de las cosas y hardware inteligente.

Insertar descripción de la imagen aquí
El módulo operativo integrado de MicroPython proporciona algunos servicios básicos del sistema operativo, incluido el acceso y la administración del sistema de archivos. Entre ellos, os.rmdir(ruta) es una función que se utiliza para eliminar un directorio. Sus principales características, escenarios de aplicación y asuntos que requieren atención son los siguientes:

Características principales: os.rmdir (ruta) acepta una ruta de parámetro de cadena, que representa la ruta del directorio que se eliminará. Si la ruta no existe, o la ruta no es un directorio vacío, o la ruta contiene caracteres no válidos, os.rmdir(ruta) generará una excepción. Si la ruta es una cadena vacía, entonces os.rmdir(ruta) no hace nada.

Escenario de aplicación: os.rmdir(ruta) se puede utilizar para eliminar directorios vacíos innecesarios en el sistema de archivos. Por ejemplo, puede utilizar os.rmdir(ruta) para eliminar algunos directorios vacíos creados temporalmente, algunos directorios de datos borrados o algunos directorios de configuración respaldados.

Cosas a tener en cuenta: antes de usar os.rmdir(ruta), debe asegurarse de que la ruta sea una ruta legal y que la ruta sea un directorio vacío existente. De lo contrario, os.rmdir(path) fallará y generará la excepción 1. Además, si la ruta es relativa, entonces es relativa al directorio de trabajo actual. Por lo tanto, antes de usar os.rmdir(ruta), es mejor usar os.getcwd() para obtener el directorio de trabajo actual y ajustar el valor de la ruta según sea necesario.

Los siguientes son varios ejemplos de aplicaciones prácticas del módulo integrado os.rmdir(ruta) de MicroPython:

Caso 1: elimine un directorio vacío llamado 'temp' en la placa MicroPython. El código se muestra a continuación:

import os

# 定义要删除的目录路径
path = 'temp'

# 删除目录
os.rmdir(path)

Caso 2: elimine un directorio de datos llamado 'datos' en la placa MicroPython, siempre que el directorio se haya borrado. El código se muestra a continuación:

import os

# 定义要删除的目录路径
path = 'data'

# 判断目录是否存在
if path in os.listdir():
    # 判断目录是否为空
    if len(os.listdir(path)) == 0:
        # 删除目录
        os.rmdir(path)
        # 打印删除成功信息
        print('Removed', path)
    else:
        # 打印目录非空信息
        print('Directory is not empty:', path)
else:
    # 打印目录不存在信息
    print('No such directory:', path)

Caso 3: elimine todos los subdirectorios vacíos en un directorio determinado en la placa MicroPython. El código se muestra a continuación:

import os

# 定义要删除空子目录的父目录
dir = 'test'

# 列出该目录下的所有文件和文件夹
items = os.listdir(dir)

# 遍历每个项目
for item in items:
    # 获取项目的完整路径
    full_path = os.path.join(dir, item)
    # 如果项目是一个空目录
    if os.path.isdir(full_path) and len(os.listdir(full_path)) == 0:
        # 删除目录
        os.rmdir(full_path)
        # 打印删除成功信息
        print('Removed', full_path)

Caso 4: Eliminar carpetas vacías:

import os

# 定义要删除的空文件夹路径
folder_path = "/home/pi/empty_folder"

# 检查文件夹是否存在并删除
if os.path.exists(folder_path):
    os.rmdir(folder_path)
    print("已成功删除空文件夹:", folder_path)
else:
    print("文件夹不存在:", folder_path)

En este ejemplo, utilizamos la función rmdir del módulo os para eliminar las carpetas vacías en la ruta especificada. Primero, verificamos si la carpeta existe usando la función os.path.exists. Si la carpeta existe, usamos la función os.rmdir para eliminar la carpeta e imprimir un mensaje de eliminación exitosa. Si la carpeta no existe, se imprime un mensaje que indica que la carpeta no existe.

Caso 5: Eliminar carpetas vacías en lotes:

import os

# 定义要删除的空文件夹列表
folders = ["/home/pi/empty_folder1", "/home/pi/empty_folder2", "/home/pi/empty_folder3"]

# 删除空文件夹
for folder in folders:
    if os.path.exists(folder):
        os.rmdir(folder)
        print("已成功删除空文件夹:", folder)
    else:
        print("文件夹不存在:", folder)

En este ejemplo, utilizamos la función rmdir del módulo os para eliminar varias carpetas vacías en la ruta especificada. Definimos una lista vacía de rutas de carpetas y luego usamos un bucle for para recorrer cada carpeta de la lista. En cada bucle, usamos la función os.path.exists para verificar si la carpeta existe. Si existe, usamos la función os.rmdir para eliminar la carpeta e imprimir un mensaje de que la eliminación se realizó correctamente. Si la carpeta no existe, se imprime un mensaje que indica que la carpeta no existe.

Caso 6: Eliminar carpetas que no estén vacías:

import shutil

# 定义要删除的非空文件夹路径
folder_path = "/home/pi/non_empty_folder"

# 删除非空文件夹及其内容
shutil.rmtree(folder_path)
print("已成功删除非空文件夹:", folder_path)

En este ejemplo, usamos la función rmtree del módulo Shutil para eliminar carpetas que no estén vacías y su contenido en la ruta especificada. Especificamos directamente la ruta de la carpeta y luego usamos la funciónshutil.rmtree para eliminar la carpeta. Finalmente, imprimimos las rutas de las carpetas que no están vacías y que se eliminaron correctamente.

Caso 7: Eliminar directorios vacíos

import uos

# 删除名为 "data" 的空目录
uos.rmdir("data")

Este ejemplo utiliza la función uos.rmdir() para eliminar un directorio vacío llamado "datos". La función rmdir solo se puede utilizar para eliminar directorios vacíos. Si el directorio contiene archivos o subdirectorios, se generará una excepción.

Caso 8: Eliminar recursivamente un directorio y su contenido

import uos

# 递归删除目录及其内容
uos.rmtree("project")

En este ejemplo, utilizamos la función uos.rmtree() para eliminar recursivamente el directorio denominado "proyecto" y su contenido. La función rmtree puede eliminar directorios que no estén vacíos y eliminará recursivamente todos los archivos y subdirectorios del directorio.

Caso 9: Eliminar tipos específicos de directorios en lotes

import uos

# 删除根目录下所有以 "backup_" 开头的目录
dirs = uos.listdir()
for dir in dirs:
    if dir.startswith("backup_"):
        uos.rmdir(dir)

En este ejemplo, usamos la función uos.listdir() para enumerar todos los archivos y subdirectorios en el directorio raíz y usamos un bucle para recorrer cada directorio. Filtramos tipos específicos de directorios comprobando si sus nombres comienzan con "backup_" y los eliminamos usando la función uos.rmdir().

Estos casos demuestran la aplicación práctica de la función uos.rmdir(), incluida la eliminación de directorios vacíos, la eliminación recursiva de directorios y su contenido y la eliminación por lotes de tipos específicos de directorios. Al utilizar la función rmdir, puede eliminar directorios fácilmente en dispositivos MicroPython. Tenga en cuenta que cuando utilice la función rmdir, asegúrese de tener permisos suficientes y configuraciones de ruta razonables, y realice los ajustes y el procesamiento adecuados de acuerdo con las necesidades reales.

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_41659040/article/details/132787268
Recomendado
Clasificación