ファイル拡張子の複数の種類を判定する方法


  1. 文字列の操作を使用する方法: 入力されたファイル名を文字列として受け取り、文字列の末尾を調べて拡張子を判定します。以下はPythonの例です。

    filename = input("ファイル名を入力してください: ")
    extension = filename.split(".")[-1]
    if extension == "txt":
       print("テキストファイルです。")
    elif extension == "jpg" or extension == "jpeg":
       print("JPEG画像です。")
    elif extension == "png":
       print("PNG画像です。")
    else:
       print("サポートされていないファイル形式です。")
  2. 正規表現を使用する方法: 正規表現を使用すると、ファイル名から拡張子を正確に抽出することができます。以下はPythonの例です。

    import re
    filename = input("ファイル名を入力してください: ")
    extension = re.search(r"\.([a-zA-Z0-9]+)$", filename)
    if extension:
       extension = extension.group(1)
       if extension == "txt":
           print("テキストファイルです。")
       elif extension == "jpg" or extension == "jpeg":
           print("JPEG画像です。")
       elif extension == "png":
           print("PNG画像です。")
       else:
           print("サポートされていないファイル形式です。")
    else:
       print("拡張子が見つかりませんでした。")
  3. ファイルのマジックナンバーを使用する方法: ファイルの先頭にあるバイト列を調べることで、ファイルの種類を判定することができます。以下はPythonの例です。

    def get_file_extension(file_path):
       with open(file_path, "rb") as file:
           header = file.read(4)  # 先頭4バイトを読み込む
           if header.startswith(b"\xFF\xD8\xFF"):
               return "jpeg"
           elif header.startswith(b"\x89\x50\x4E\x47"):
               return "png"
           elif header.startswith(b"\x47\x49\x46\x38"):
               return "gif"
           elif header.startswith(b"\x42\x4D"):
               return "bmp"
           else:
               return "unknown"
    file_path = input("ファイルパスを入力してください: ")
    extension = get_file_extension(file_path)
    if extension != "unknown":
       print(f"ファイルの拡張子は {extension} です。")
    else:
       print("サポートされていないファイル形式です。")

これらのコード例を使用して、ファイル拡張子を判定し、適切な処理を行うことができます。必要に応じて、拡張子や処理方法を追加または変更してください。