Python ファイルタイプカウンター

PythonPythonBeginner
オンラインで実践に進む

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

このプロジェクトでは、特定のファイルタイプのファイル数をカウントする Python スクリプトを書く方法を学びます。これは、Python でファイルとディレクトリを扱う際の一般的なタスクであり、データ分析、ファイル管理、システム管理など、さまざまなアプリケーションで役立ちます。

👀 プレビュー

$ python3 file_type.py
ファイルタイプを入力してください:txt
3

🎯 タスク

このプロジェクトでは、以下を学びます。

  • 特定のファイルタイプのファイル数をカウントする count_file_type 関数を実装する方法
  • ユーザー入力を処理してファイルタイプのカウントを表示する方法
  • スクリプトを拡張して複数のファイルタイプとディレクトリアクセスエラーを処理する方法

🏆 成果

このプロジェクトを完了すると、以下のことができるようになります。

  • ディレクトリ内の特定のファイルタイプのファイル数をカウントする Python スクリプトを書く
  • ユーザー入力を処理してファイルタイプのカウントを表示する
  • エッジケースを処理し、より多くの機能を提供するためにスクリプトを拡張する

count_file_type 関数を実装する

このステップでは、file_type.py ファイルに count_file_type 関数を実装します。この関数は、指定されたディレクトリ内の特定のファイルタイプのファイル数をカウントします。

  1. テキストエディタで file_type.py ファイルを開きます。
  2. count_file_type 関数の定義を見つけます。
  3. 指定されたディレクトリ内の特定のファイルタイプのファイル数をカウントする関数ロジックを実装します。
    • os.listdir() 関数を使用して、ディレクトリ内のすべてのファイルのリストを取得します。
    • ファイルのリストを反復処理し、endswith() メソッドを使用して各ファイルが指定されたファイルタイプで終わるかどうかを確認します。
    • 指定されたファイルタイプに一致する各ファイルに対して、count 変数をインクリメントします。
    • 最終的な count 値を返します。

以下は、完成した count_file_type 関数です。

def count_file_type(file_path, file_type):
    """
    指定されたディレクトリ内の特定のファイルタイプのファイル数をカウントします。

    引数:
    - file_path: ファイル数をカウントするディレクトリパスを指定する文字列。
    - file_type: カウントするファイルタイプ(拡張子)を指定する文字列。

    戻り値:
    - count: ディレクトリ内の指定されたファイルタイプのファイル数を表す整数。
    """
    count = 0
    for file in os.listdir(file_path):
        if file.endswith("." + file_type):
            count += 1
    return count

スクリプトを実行してユーザー入力を取得する

このステップでは、file_type.py スクリプトを実行して、カウントしたいファイルタイプをユーザーに入力させます。

  1. ターミナルまたはコマンドプロンプトを開き、file_type.py ファイルが含まれるディレクトリに移動します。

  2. 次のコマンドを使用してスクリプトを実行します。

    python3 file_type.py
  3. スクリプトがユーザーにファイルタイプの入力を促します。

    ファイルタイプを入力してください:
  4. ファイルタイプ(例:"txt")を入力して Enter キーを押します。

    $ python3 file_type.py
    ファイルタイプを入力してください:txt
    3
  5. その後、スクリプトは /home/labex/project ディレクトリ内の指定されたファイルタイプのファイル数を表示します。

✨ 解答を確認して練習

まとめ

おめでとうございます!このプロジェクトを完了しました。実力を向上させるために、LabEx でさらに多くの実験を行って練習してください。