Comprobar si el archivo está vacío en Python

Salman Mehmood 21 junio 2023
  1. Compruebe el archivo de texto vacío en Python
  2. Compruebe el archivo de Excel vacío en Python
  3. Compruebe el archivo CSV vacío en Python
Comprobar si el archivo está vacío en Python

Aprenderemos a comprobar si los archivos están vacíos o no. También echamos un vistazo a diferentes problemas que surgieron al verificar un archivo vacío en Python.

Compruebe el archivo de texto vacío en Python

Si está procesando por lotes o procesando esa parte de un proceso más grande, no colocará ningún resultado en una pantalla. Tendría diferentes alertas para informarle lo que está sucediendo para que pueda interrumpir y arreglar las cosas.

Pero para esta demostración hemos creado tres archivos, csv, text y excel; los tres están vacíos. Queremos mostrarte que ingresamos el código muy rápido.

En nuestro caso, los tamaños de archivo tienen 0 kb porque nuestros archivos están vacíos, pero en su caso, los tamaños pueden ser diferentes aunque tenga un archivo vacío. Los tamaños de archivo son importantes cuando verificamos si un archivo está vacío porque usamos el tamaño de archivo en nuestro código de Python.

Ahora saltaremos al código para probar si un archivo de texto está vacío o no, y para probar; Importaremos la clase Path desde el módulo pathlib. La clase Ruta nos da acceso al directorio de rutas de trazo en nuestra unidad local o potencialmente en nuestra unidad de red, o donde sea que se encuentre la ruta real al archivo.

Primero, definimos una función llamada If_TextFileEmpty() y creamos una variable llamada my_file dentro de la función. Llamaremos a la clase Path() y definiremos la ruta de un archivo; ponemos r antes de la cadena para evitar un error de Unicode.

my_file = Path(r"C:\Users\Dell\Desktop\demo\files\Mytextfile.txt")

Ahora definiremos una comprobación básica de si alguno de los archivos existe utilizando el método is_file(). Definiremos el siguiente bloque para comprobar si un archivo está vacío utilizando la función getsize() del módulo os.

from pathlib import Path
import os


def If_TextFileEmpty():
    my_file = Path(r"C:\Users\Dell\Desktop\demo\files\Mytextfile.txt")
    if my_file.is_file():
        print("This file exists, ok!")
    else:
        print("This file does not exists, make sure are putting correct path")
    if os.path.getsize(my_file) > 0:
        print("This file is not an empty file, process done!")
    else:
        print("This is an empty file.")


If_TextFileEmpty()

En ambos casos, si la instrucción if no encuentra un valor True, entonces se ejecutará el bloque else.

This file exists, ok!
This is an empty file.

Compruebe el archivo de Excel vacío en Python

Hay un problema con el código anterior; tenemos un archivo vacío, pero su tamaño no es de 8kb. Se ve con archivos CSV o Excel.

Dado que tenemos un archivo de Excel y su tamaño es de 8 kb, utilizaremos un enfoque diferente.

Para utilizar este enfoque, importaremos la biblioteca pandas y llamaremos al método read_excel() que lee un archivo de Excel. Usando la declaración if, usaremos una propiedad llamada vacío para verificar si este archivo de Excel está vacío y devolver un valor booleano.

import pandas as pd


def IsExcelFileEmpty():
    My_Excelfile = pd.read_excel(
        "C://Users//Dell//Desktop//demo//files//myexcelfile.xlsx"
    )

    if My_Excelfile.empty:
        print("This excel file is empty.")
    else:
        print("This excel file is not empty.")


IsExcelFileEmpty()

Producción :

This excel file is empty.

Compruebe el archivo CSV vacío en Python

Pero el código anterior no funciona con el archivo csv y genera un error porque se trata de un archivo vacío y le estamos dando instrucciones a Python para que lea este archivo. En este caso, comenzará a leer, no encontrará ninguna columna y generará una excepción.

File "pandas\_libs\parsers.pyx", line 549, in pandas._libs.parsers.TextReader.__cinit__
pandas.errors.EmptyDataError: No columns to parse from file

Atraparemos esta excepción en el bloque try. No necesitamos usar una propiedad vacía; obviamente, irá al bloque excepto si el bloque intentar detecta una excepción.

import pandas as pd


def If_csvfileEmpty():
    try:
        My_csvFile = pd.read_csv("C://Users//Dell//Desktop//demo//files//mycsvfile.csv")
    except:
        print("This CSV file is empty.")
    else:
        print("This CSV file is not empty.")


If_csvfileEmpty()

Producción :

This CSV file is empty.
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 File