Comprobar si el generador está vacío en Python

Salman Mehmood 21 junio 2023
Comprobar si el generador está vacío en Python

Este artículo trata sobre cómo comprobar si un generador está vacío en Python.

Comprobar si el generador está vacío en Python

Verificar si un generador está vacío en Python se refiere a una ruta que se verifica para asegurarse de que esté vacía. Para esto, la ruta relevante debe identificarse de antemano como un directorio o un archivo, lo que nos permite seleccionar el enfoque requerido para verificar que se usará sin esfuerzo.

El siguiente fragmento muestra la participación de dos variables de marcador de posición denominadas filepath y dirpath. Estas variables se utilizan para la identificación de un archivo y directorio local:

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

Las variables de marcador de posición anteriores pueden funcionar con el módulo os en Python que actúa como un paquete estándar. Se puede usar con objetos, funciones y constantes que funcionan con el sistema operativo correspondiente.

El módulo os también se puede denotar como os.path e incluye isdir() e isfile() que funcionan como funciones. Estas funciones permiten a los usuarios diferenciar entre el directorio dado y cualquier archivo.

El valor de retorno en el funcionamiento de ambas funciones es un valor booleano.

Considere el siguiente ejemplo:

import os

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

os.path.isfile(dirpath)  # False
os.path.isdir(dirpath)  # True
os.path.isfile(filepath)  # True
os.path.isdir(filepath)  # False

Las funciones isdir() y isfile() se indican como os.path.isdir y os.path.isfile, respectivamente, en este ejemplo. El valor de retorno en el funcionamiento de ambas funciones es un valor booleano.

Significa que el resultado de la implementación de estas funciones debería devolverse como True o False. Los valores devueltos de True y False muestran si la ruta relevante es un archivo o un directorio según su función respectiva.

Después de esta confirmación, se puede usar otro módulo llamado pathlib en y después de la versión de Python 3.4. Con este módulo, una interfaz orientada a objetos ha permitido a los usuarios trabajar fácilmente con sus sistemas de archivos.

Este módulo asegura simplificaciones dentro de la implementación en comparación con el módulo os.path. Tiene una clase Path involucrada en su trabajo, con un camino aceptado como argumento.

Después de esto, esa ruta devuelve un objeto Ruta para que los usuarios puedan encadenarlo o consultarlo fácilmente con atributos y métodos.

Eche un vistazo al siguiente fragmento de código:

from pathlib import Path

dirpath = "/mnt/f/code.books/articles/python"
filepath = "/mnt/f/code.books/articles/python/code/file_dir.py"

Path(dirpath).is_file()  # False
Path(dirpath).is_dir()  # True
Path(filepath).is_file()  # True
Path(dirpath).is_file()  # False

En este fragmento, se comprueba el objeto Ruta para asegurarse de que sea un directorio o un archivo con un valor booleano como valor de retorno. Las variables dirpath y filepath también intervienen con el objeto Path asociado a los métodos is_file() y is_dir().

Su implementación devolverá la salida como True o False, mostrando un directorio o un archivo como objeto.

El siguiente paso es verificar si un generador está vacío y puede involucrar una ruta o archivo vacío. La ruta o el archivo también se puede denominar un archivo de cero bytes y puede ser de diferentes tipos sin contenido ni datos.

Recuerde que los archivos que contienen metadatos sin datos no se incluyen en la categoría de archivos vacíos. Esto puede incluso implicar archivos de música que contengan un autor.

Los archivos vacíos se pueden crear fácilmente en plataformas como macOS y LINUX. Aquí hay un fragmento de cómo se puede hacer eso:

$ touch emptyfile

El siguiente fragmento muestra cómo hacerlo en Windows:

$ type nul > emptyfile

Después de hacer esto, tenemos que definir las variables con las que un archivo no vacío o un archivo vacío puede apuntar a un archivo vacío. Es probable que ese archivo vacío tenga cero bytes, mientras que el archivo no vacío tiene un byte de tamaño.

El siguiente es un ejemplo de cómo puede verse:

emptyfile = "/mnt/f/code.books/articles/python/emptyfile"
nonemptyfile = "/mnt/f/code.books/articles/python/onebytefile"

Con esto, se puede utilizar un parámetro opcional para la función siguiente(), con el que los usuarios pueden asegurarse de que el generador esté vacío.

Aquí hay un fragmento de código para eso:

_exhausted = object()

if next(some_generator, _exhausted) is _exhausted:
    print("empty generator")

En este fragmento, el generador vacío se indica mediante un iterador agotado y el uso de un objeto. Después de esto, se coloca una condición if dentro de la implementación, que verifica si hay un generador agotado con algún valor de generador.

En el caso de un generador vacío, la condición se cumple y la implementación devuelve un generador vacío como salida.

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn

Artículo relacionado - Python Generator