Pythonのosモジュール

PythonのOSモジュールは、操作システムの情報を取得したり、プロセスを制御したりするための簡単な機能を提供します。

PythonのOSモジュール

OSモジュールが提供する機能により、Windows、Macintosh、Linuxを問わず、基盤となるオペレーティングシステムのタスクを操作することができます。このレッスンでは、これらの機能と、それらを使って何ができるかを見直します。これらの機能と提供される情報についての旅を始めましょう。

Pythonのosをインポートする。

python os import, python os module

オペレーティングシステムの名前

この機能は、インポートするOSモジュールの名前を返します。これは、基本的なオペレーティングシステムによって異なります。現在、 ‘posix’、 ‘os2’、 ‘ce’、 ‘nt’、 ‘riscos’、および ‘java’ が登録されています。システム上でこれを実行しましょう。

>>> print(os.name)
posix

明らかに、これはインタープリターに基づいて異なるプラットフォームを出力できます。

os.environを日本語で言い換えると、「環境変数」となります。

環境は機能ではなく、システムの環境変数にアクセスするためのプロセスパラメータです。以下にサンプルコードの一部をご覧ください。

import os
output = os.environ['HOME']
print(output)
python os environment variable

os.execvp -> os.execvpを言い換えます
os.execvp -> os.execvpを別の形で述べると

execvp関数は、システム上で他のコマンドを実行する方法の1つです。この関数のサンプルコードスニペットを見てみましょう。

import os
program = "python"
arguments = ["hello.py"]
print(os.execvp(program, (program,) +  tuple(arguments)))

これについて、私たちは以下のコードを使用してhello.pyというサンプルスクリプトを作成しました。 (Kore ni tsuite, watashitachi wa ikkaino kōdo o shiyō shite hello.py to iu sanpuru sukuripto o sakusei shimashita.)

print('Hello')
python os module, python os execute other script

os.getuidを日本語で言い換えると:
「os.getuidの関数を使うと、ユーザーのUIDが取得できます。」

このosモジュールの関数は、現在のプロセスのユーザーIDまたはUIDを返します。

>>> os.getuid()
501

現在のシェルプロセスIDは501です。

`os.rename` を日本語で自然に述べると何となりますか?一つのオプションで結構です。

ファイルを移動します。

Pythonのos.rename関数を使えば、簡単にファイル名を変更することができます。

import os
fileDir = "JournalDev.txt"
os.rename(fd,'JournalDev_Hi.txt')

この場合、スクリプトに正しい許可を与える必要があることに注意してください。

以下の表現を日本語で1つのオプションで言い換えます:
os.system

Pythonのosシステム関数を使うことで、Pythonスクリプト内でシェルで実行しているかのようにコマンドを実行することができます。たとえば:

import os
currentFiles = os.system("users > users.txt")
Python OS System command

オーエスエラー

Pythonのosモジュールのエラークラスは、I/O関連のエラーの基本クラスです。そのため、except節でOSErrorを使用してIOエラーをキャッチすることができます。

import os

try:
    f = open('abc.txt', 'r')  # file is missing
except OSError:
    print('Error')

os.getpid → OSのプロセスIDを取得

この関数は、一般的にPIDとして知られる現在のプロセスIDを返します。

>>> os.getpid()
71622

現在のシェルプロセスのユーザーIDは71622です。

os.listdirを日本語で言い換えると、以下のようになります:「ディレクトリ内のファイル一覧を取得する」

現在の作業ディレクトリに存在するファイルとディレクトリを一覧表示する機能です。

>>> import os
>>> os.listdir()
['.DS_Store', '.localized', 'JournalDev', 'Java', 'Python']

ディレクトリとファイル名の繰り返し可能なリストが返されます。

os.unameを日本語で言い換えると、「オペレーティングシステムの情報を提供する」となります。

この機能は、実行されている現在のオペレーティングシステムを識別する情報を返します。

>>> os.uname()
posix.uname_result(sysname='Darwin', nodename='Shubham.local', release='17.2.0', version='Darwin Kernel Version 17.2.0: Fri Sep 29 18:27:05 PDT 2017; root:xnu-4570.20.62~3/RELEASE_X86_64', machine='x86_64')

それは実際にはかなり詳細でした。

os.pathをインポートする vs osをインポートする

実際には、os.pathは奇妙に動作します。osはサブモジュールpathと一緒にパッケージ化されているように見えますが、実際には、osはsys.moduleと連携してos.pathをサポートする通常のモジュールです。裏側で何が起こっているかをリストアップしましょう。

  • When Python starts, it loads many modules into sys.module.
  • os module is also loaded when Python starts. It assigns its path to the os specific module attribute.
  • It injects sys.modules[‘os.path’] = path so that you’re able to do import os.path as though it was a submodule.

まとめ

このレッスンでは、PythonのOSモジュールが提供するさまざまな機能について学び、それがどのように機能するかを確認しました。Pythonに関する他のレッスンはこちらでご覧ください。参考文献:APIドキュメント

コメントを残す 0

Your email address will not be published. Required fields are marked *