Python でファイルが空かどうかを確認する

Salman Mehmood 2023年6月21日
  1. Python で空のテキスト ファイルを確認する
  2. Python で空の Excel ファイルを確認する
  3. Python で空の CSV ファイルを確認する
Python でファイルが空かどうかを確認する

ファイルが空かどうかを確認する方法を学びます。 また、Python で空のファイルをチェックしているときに発生したさまざまな問題についても調べています。

Python で空のテキスト ファイルを確認する

バッチ処理を行っている場合、またはより大きなプロセスのその部分を処理している場合は、画面に何も出力しません。 何が起こっているかを知らせるためにさまざまなアラートが表示されるため、中断して修正することができます。

しかし、このデモンストレーションでは、csvtext、および excel の 3つのファイルを作成しました。 3つすべてが空です。 コードを非常に迅速に入力することをお見せしたいと思います。

私たちの場合、ファイルが空であるため、ファイル サイズは 0 kb ですが、あなたの場合は、空のファイルがあってもサイズが異なる場合があります。 Python コードでファイル サイズを使用するため、ファイルが空かどうかを確認する場合、ファイル サイズは重要です。

ここで、テキスト ファイルが空かどうかをテストするコードに飛び込み、テストします。 pathlib モジュールから Path クラスをインポートします。 Path クラスを使用すると、ローカル ドライブまたは場合によってはネットワーク ドライブ上にあるストローク パスのディレクトリにアクセスできます。また、ファイルへの実際のパスがある場所にアクセスすることもできます。

まず、If_TextFileEmpty() という関数を定義し、関数内に my_file という変数を作成します。 Path() クラスを呼び出して、ファイルのパスを定義します。 Unicode エラーを避けるために、文字列の前に r を置きます。

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

次に、is_file() メソッドを使用して、いずれかのファイルが存在するかどうかの基本的なチェックを定義します。 os モジュールの getsize() 関数を使用して、ファイルが空かどうかをチェックする次のブロックを定義します。

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()

どちらの場合も、if ステートメントで True 値が見つからない場合は、else ブロックが実行されます。

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

Python で空の Excel ファイルを確認する

上記のコードには問題があります。 空のファイルがありますが、そのサイズは 8kb ではありません。 CSV または Excel ファイルで見られます。

Excel ファイルがあり、そのサイズは 8kb であるため、別のアプローチを使用します。

このアプローチを使用するには、pandas ライブラリをインポートし、Excel ファイルを読み取る read_excel() メソッドを呼び出します。 if ステートメントを使用して、empty というプロパティを使用して、この Excel ファイルが空であるかどうかを確認し、ブール値を返します。

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()

出力:

This excel file is empty.

Python で空の CSV ファイルを確認する

しかし、上記のコードは csv ファイルでは機能せず、これは空のファイルであり、このファイルの読み取りについて Python に指示しているため、エラーが発生します。 この場合、読み取りが開始され、列が見つからず、例外が発生します。

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

try ブロックでこの例外をキャッチします。 empty プロパティを使用する必要はありません。 明らかに、try ブロックが例外をキャッチすると、except ブロックに入ります。

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()

出力:

This CSV file is empty.
著者: Salman Mehmood
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

関連記事 - Python File