Pythonモジュールの検索と実行(runpy)
コマンドラインオプションの–mオプションは、指定されたモジュールを検索し、それを__main__モジュールとして実行します。このメカニズムは、ファイルシステムではなくPythonモジュール名前空間を使用してスクリプトを検索できるPythonの標準モジュールのrunpyモジュールによって内部的にサポートされています。
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
-
Pythongetpassモジュール
Pythonの標準ライブラリのgetpassモジュールで定義されている2つの関数があります。これらは、ユーザーの資格情報を検証した後にのみ端末ベースのアプリケーションを実行する必要がある場合に役立ちます。 getpass() この関数は、ユーザーにパスワードの入力を求めます。デフォルトでは、ユーザーが端末に入力したキーはエコーされません。また、端末に表示されるデフォルトのプロンプトは「パスワード」であり、パラメータとして文字列を指定することでカスタマイズできます。 次の例では、PythonプロンプトはWindowsのコマンドプロンプトターミナルから呼び出されます。入力したパスワードは端末
-
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