Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonモジュールの検索と実行(runpy)


コマンドラインオプションの–mオプションは、指定されたモジュールを検索し、それを__main__モジュールとして実行します。このメカニズムは、ファイルシステムではなくPythonモジュール名前空間を使用してスクリプトを検索できるPythonの標準モジュールのrunpyモジュールによって内部的にサポートされています。

このモジュールは2つの関数を定義します

run_module()

この関数は、指定されたモジュールのコードを実行し、結果のモジュールグローバルディクショナリを返します。

mod_name引数は、絶対モジュール名である必要があります。モジュール名が通常のモジュールではなくパッケージを参照している場合、そのパッケージがインポートされ、そのパッケージ内の__main__サブモジュールが実行され、結果のモジュールグローバルディクショナリが返されます。

特別なグローバル変数__name__、__ spec __、__ file __、__ cached __、__ loader__、および__package__は、モジュールコードが実行される前にグローバルディクショナリに設定されます。

__name__は、指定されたモジュールがパッケージの場合はmod_name +'.__ main__'に設定され、それ以外の場合はmod_name引数に設定されます。

__file __、__ cached __、__ loader__、および__package__は、モジュール仕様に基づいて通常どおりに設定されます。

run_path()

この関数は、指定されたパスでファイル内のコードを実行し、結果のモジュールグローバルディクショナリを返します。指定されたパスは、Pythonソースファイル、コンパイルされたバイトコードファイル、または__main __モジュールを含む有効なsys.pathエントリ(たとえば、トップレベルの__main __。pyファイルを含むzipファイル)を参照する場合があります。

特別なグローバル変数__name__、__ spec __、__ file __、__ cached __、__ loader__、および__package__は、モジュールコードが実行される前にグローバルディクショナリに設定されます。

__name__は、このオプションの引数がNoneでない場合はrun_nameに設定され、それ以外の場合は''に設定されます。

次のスクリプトをrunpyeample.pyとして保存します

#runpy example
def add(x,y):
   return x+y
def main():
   x,y = 10,20
   print (add(x,y))
   return
if __name__=='__main__':
   main()
上記の例を実行する通常のプロセスは次のとおりです

>>> import runpyexample as rp
>>> rp.main()
30
>>>

ただし、現在はrunpyモジュールを使用して、実際にインポートせずに実行しています。

>>> import runpy
>>> runpy.run_module('runpyexample', run_name='__main__')
30

run_path()関数を使用することもできます。

>>> runpy.run_path('runpyexample.py', run_name='__main__')
30

前述のように、runpyはPythonコマンドラインの-mスイッチをサポートしています。

E:\python37>python -m runpyexample
30

  1. Pythongetpassモジュール

    Pythonの標準ライブラリのgetpassモジュールで定義されている2つの関数があります。これらは、ユーザーの資格情報を検証した後にのみ端末ベースのアプリケーションを実行する必要がある場合に役立ちます。 getpass() この関数は、ユーザーにパスワードの入力を求めます。デフォルトでは、ユーザーが端末に入力したキーはエコーされません。また、端末に表示されるデフォルトのプロンプトは「パスワード」であり、パラメータとして文字列を指定することでカスタマイズできます。 次の例では、PythonプロンプトはWindowsのコマンドプロンプトターミナルから呼び出されます。入力したパスワードは端末

  2. Pythonopenpyxlモジュールを使用してExcelファイルの読み取りと書き込み

    Pythonは、Excelファイルを操作するためのopenpyxlモジュールを提供します。 このモジュールでは、Excelファイルの作成方法、書き込み方法、読み取り方法などを実装できます。 openpyxlモジュールをインストールするには、コマンドプロンプトでこのコマンドを記述できます pip install openpyxl シートにタイトル名を付けたい場合 サンプルコード import openpyxl my_wb = openpyxl.Workbook() my_sheet = my_wb.active my_sheet_title = my_sheet.title print