PythonのOSモジュールは、ファイルシステム、プロセス、スケジューラなどを処理するためのシステム固有の関数へのアクセスを提供します。実際の問題を処理するアプリケーションを作成するには、PythonOSシステムを習得する必要があります。このガイドでは、いくつかのコアコンセプトについて説明し、Pythonシステムコマンドの使用方法を示します。
PythonOSシステムの機能
OSシステムは、基盤となるオペレーティングシステムと対話するためのポータブルな方法として機能します。他の機能とともに、ファイル名、コマンドライン引数、環境変数、プロセスパラメータ、およびファイルシステム階層へのアクセスを提供します。
このモジュールには、os.sysモジュールとos.pathモジュールの2つのサブモジュールも含まれています。 OSモジュールが提供する機能を使用して、さまざまなタスクを実行できます。一般的な使用法には、シェルコマンドの実行、ファイルとディレクトリの管理、プロセスの生成などがあります。
OSモジュール入門
OSモジュールを探索する最も簡単な方法は、インタープリターを使用することです。そこにモジュールをインポートして、ソースコードを記述せずにシステム関数を使用できます。ただし、これにはPythonをインストールする必要があります。したがって、先に進んで、ローカルマシンにPythonをインストールしてください。
関連している: UbuntuにPythonをインストールする方法
次のように入力してインタープリターを起動します Python ターミナルまたはコマンドシェルで。開いたら、次のステートメントを使用してOSモジュールをインポートします。
GPUウィンドウを確認する方法10
>>> import os
Pythonを含むOSモジュールが提供する機能にアクセスできるようになりました システム 指図。たとえば、を使用してシステムプラットフォームを決定できます。 名前 指図。以下の例は、OSモジュールによって公開されているシステムコマンドを呼び出す方法を示しています。
>>> os.name
この関数は、特定のOS固有のモジュールが存在するかどうかを確認し、それに基づいてプラットフォームを決定します。使用 うなめ 詳細情報を取得する機能。
>>> os.uname()
このコマンドは、マシンアーキテクチャ、リリース、およびバージョン情報とともに正確なシステムプラットフォームを表示します。使用 getcwd 現在の作業ディレクトリを取得する関数。
>>> os.getcwd()
Pythonシステムコマンドを使用して、作業ディレクトリを簡単に変更できます chdir 。新しい場所を文字列パラメータとして渡します。
>>> os.chdir('/tmp')
NS mkdir OSモジュールの機能により、新しいディレクトリの作成が簡単になります。また、再帰フォルダーを作成することもできます。つまり、Pythonは、リーフディレクトリの親である欠落しているすべてのディレクトリを作成します。
>>> os.mkdir('new-dir')
使用 rmdir 作業ディレクトリからディレクトリを削除するコマンド。
>>> os.rmdir('new-dir')
Pythonシステムコマンドの例
OSモジュールが提供するシステムコマンドにより、プログラマーはシェルコマンドを実行できます。コマンド名は必ず文字列として定義してください。 Pythonを呼び出したら システム コマンドを実行すると、指定されたコマンドが新しいサブシェルで実行されます。
>>> cmd = 'date'
>>> os.system(cmd)
これと同じ方法を使用して、他のスタンドアロンアプリケーションを実行できます。次の例では、Pythonシェルからターミナルエディターnanoを実行します。
>>> cmd = 'nano'
>>> os.system(cmd)
Python OSシステムは、実行されている各コマンドの戻りコードも出力します。 POSIXシステムは、正常に実行された場合は0を返し、問題を示した場合はゼロ以外の値を返します。
PythonのOSシステムを使用して、必要なものを実行できます。たとえば、プログラムがユーザーマシン上のプログラムのバージョン情報を読み取る必要がある場合は、次のようにすることができます。
>>> cmd = 'gcc --version'
>>> os.system(cmd)
次の例では、という新しいファイルを作成する簡単なシェルコマンドを実行します。 users.txt ログインしているすべてのユーザーを入力します。多くのPythonプログラムがこれらのことを行います。
>>> os.system('users > test')
コマンド名を文字列としてOSシステムに渡します。あなたはすべてのタイプを使用することができます 便利なターミナルコマンド 同じ方法。
>>> os.system('ping -c 3 google.com')
使用することもできます サブプロセス Pythonからシステムコマンドを実行するための呼び出し。これにより、ランタイムの高速化、エラー処理の改善、出力の解析、シェルコマンドのパイピングなど、いくつかの追加の利点が提供されます。 Pythonの公式ドキュメントでは、次のような古いモジュールよりもサブプロセスの呼び出しを推奨しています。 os.system と os.spawn 。
>>> import subprocess
>>> subprocess.run(['ping','-c 3', 'example.com'])
OSモジュールを介したファイルとディレクトリの管理
PythonOSモジュールを使用して単純なファイルとディレクトリを作成する方法を示しました。ネストされたフォルダを作成したい場合はどうなりますか? OSシステムは、私たちプログラマーのためにもこれを処理します。たとえば、以下のスニペットはフォルダを作成します $ HOME / test / root / api 。また、使用できない場合は、必要な親ディレクトリも作成されます。
>>> dirname = os.path.join(os.environ['HOME'], 'test', 'root', 'api')
>>> print(dirname)
>>> os.makedirs(dirname)
まず、を使用してホームディレクトリを取得しました だいたい 次に、を介してフォルダ名を結合しました os.path.join 。 printステートメントは、フォルダー名を表示し、 makedirs それを作成します。
を使用して新しいディレクトリを表示できます listdir OSモジュールのメソッド。
>>> os.chdir(os.path.join(os.environ['HOME'], 'test', 'root', 'api'))
>>> os.system('touch file1 file2 file3')
>>> os.listdir(os.environ['HOME'])
を使用して、apiディレクトリの名前を簡単に変更できます。 名前を変更 OSモジュールによって提供されるコマンド。以下のステートメントは、このapiディレクトリの名前をtest-apiに変更します。
>>> os.rename('api', 'test-api')
使用 isfile と 名前 プログラムが特定のファイルまたはディレクトリを検証する必要がある場合のOSの機能。
>>> os.path.isfile('file1')
>>> os.path.isdir('file1')
PythonのOSモジュールを使用すると、開発者はファイル拡張子とともにファイル名とフォルダー名を抽出することもできます。以下のスニペットは、 os.path.split と os.path.splitext この点について。
>>> dir = os.path.join(os.environ['HOME'], 'test', 'root', 'api', 'file1.txt')
>>> dirname, basename = os.path.split(dir)
>>> print(dirname)
>>> print(basename)
以下のコードを使用して、ファイル名から.txtや.mp3などの拡張子を抽出します。
>>> filename, extension = os.path.splitext(basename)
>>> print(filename)
>>> print(extension)
PythonOSシステムのその他の使用
OSモジュールは、ユーザープロセスやジョブスケジューラなどを操作するための多くの追加機能を提供します。たとえば、を使用して現在のプロセスのUID(ユーザーID)をすばやく取得できます。 目撃した 関数。
>>> os.getuid()
>>> os.getgid()
NS getgid 関数は、実行中のプロセスのグループIDを返します。使用する getpid PID(プロセスID)を取得するため getppid 親プロセスIDを取得します。
>>> os.getpid()
>>> os.getppid()
OSモジュールを使用して、Pythonプログラムからファイルとディレクトリのアクセス許可を変更することもできます。使用 chmod これを行うためのOSの機能。
>>> os.chmod('file1.txt', 0o444)
このコマンドは、の権限を変更します file1.txt に 0444 。使用する 0o444 それ以外の 0444 ステートメントがPythonの両方のメジャーバージョン間で互換性があることを確認します。
PythonOSシステムのパワーを活用する
PythonのOSモジュールは、基盤となるオペレーティングシステムと対話するために必要なすべてを提供します。真のクロスプラットフォームプログラムを作成するには、OSシステムを明確に理解する必要があります。このモジュールで提供されるコア機能のいくつかについて説明し、開始に役立てます。自分のペースで試してみて、いじくりまわすことを忘れないでください。
共有 共有 つぶやき Eメール Pythonでタプルを作成して使用する方法Pythonコーディングを次のレベルに引き上げる準備はできましたか?タプルを作成して使用する方法を理解する時が来ました。
次を読む 関連トピック- プログラミング
- Python
Rubaiatは、オープンソースに強い情熱を持っているCS卒業生です。彼はUnixのベテランであるだけでなく、ネットワークセキュリティ、暗号化、関数型プログラミングにも携わっています。彼は中古本の熱心なコレクターであり、クラシックロックに対する終わりのない賞賛を持っています。
RubaiatHossainのその他の作品ニュースレターを購読する
ニュースレターに参加して、技術的なヒント、レビュー、無料の電子書籍、限定セールを入手してください。
購読するにはここをクリックしてください