Python のフォルダ内の各ファイルに対してコマンドを実行する
- コマンドプロンプトを使用して、Python のフォルダーに存在するすべてのファイルに対してコマンドを実行する
-
os
モジュールを使用して、Python のフォルダー内のすべてのファイルに対してコマンドを実行する -
pathlib
モジュールを使用して、Python のフォルダー内の各ファイルに対してコマンドを実行する
ファイルから特定の変数を抽出したり、ファイルに書き込まれたテキストを抽出したりするなど、Python を使用して外部ファイルに対して実行できる興味深い操作はたくさんあります。その一つが、Python を使って特定のフォルダに存在する Python ファイルにコマンドを実行する操作です。
このチュートリアルでは、Python を使用してフォルダー内に存在するすべてのファイルに対してコマンドを実行する方法を示します。
このチュートリアルでは、いくつかの Python ステートメントを含む 2つの Python ファイルが実行され、辞書 testFolder
に存在する .py
拡張子で保存されると想定します。
これらの 2つの Python ファイルは次のとおりです。
sample1.py
print("Hello World")
sample2.py
print(1 + 1)
ここで、これら 2つのファイルが testFolder
というフォルダーに保存されているとします。これらのファイルを Python で出力するいくつかの方法を見てみましょう。
コマンドプロンプトを使用して、Python のフォルダーに存在するすべてのファイルに対してコマンドを実行する
コンピューターのコマンドラインを使用してフォルダー内に存在するすべてのファイルを実行するには、ファイルのパスを指定する必要があります。コマンドプロンプトに書き込まれるコマンドは次のとおりです。
python ../testFolder/sample1.py & python ../testFolder/sample2.py
出力:
Hello World
2
os
モジュールを使用して、Python のフォルダー内のすべてのファイルに対してコマンドを実行する
Python の os
モジュールは、Python の標準ユーティリティモジュールの下にあります。このモジュールは、さまざまな機能と方法を提供することにより、コンピューターのオペレーティングシステムとの対話を支援します。このモジュールは主に、ユーザーがコンピューターのファイルシステムを操作したいときに機能します。
このメソッドでは、os
モジュールからいくつかのメソッドが使用されます。メソッドは、os.listdir
、os.path.join
、および os.path.isfile
です。
os
モジュールの os.listdir
メソッドは、ディレクトリに存在するすべてのファイルの完全なリストを取得するのに役立ちます。このメソッドの引数は、ディレクトリのパスです。引数にディレクトリが指定されていない場合、現在のディレクトリに存在するすべてのファイルのリストがデフォルトで返されます。
os
モジュールの os.path.join
メソッドは、特定のパスの 1つまたは複数のコンポーネントを連結するために使用されます。これは、ディレクトリ区切り文字/
とも呼ばれる区切り文字によって行われます。
os
モジュールの os.path.isfile
メソッドは、ファイルが指定されたパスに存在するかどうかを確認するのに役立ちます。このメソッドの引数は常にファイルのパスです。
import os
directory_name = "random"
for file_name in os.listdir(directory_name):
i = os.path.join(directory_name, file_name)
if os.path.isfile(i):
print(i)
出力:
Hello World
2
pathlib
モジュールを使用して、Python のフォルダー内の各ファイルに対してコマンドを実行する
Python の pathlib
モジュールは、標準のユーティリティモジュールの下にあります。このモジュールは、クラスの形式でファイルパスを提供するのに役立ち、オペレーティングシステムを処理するための適切なセマンティクスを提供します。
このメソッドでは、pathlib
モジュールの path.glob()
関数が使用されます。これは基本的に、指定されたディレクトリ内のすべてのファイルにアクセスするのに役立ちます。
from pathlib import Path
directory_name = "random"
open_files = Path(directory_name).glob("*")
for file in open_files:
print(file)
出力:
Hello World
2
Lakshay Kapoor is a final year B.Tech Computer Science student at Amity University Noida. He is familiar with programming languages and their real-world applications (Python/R/C++). Deeply interested in the area of Data Sciences and Machine Learning.
LinkedIn