part10-1 Pythonの共通モジュール(SYSモジュール、OSモジュール)


Pythonは、強力なサードパーティ製のモジュールを持っている実用的なアプリケーションでこれらのサードパーティのモジュールは、機能の多くを達成することができました、通常は、同じ機能を開発モジュールを繰り返す必要はありません。また、Python言語は、例えば、一般的な日付、時間、正規表現、JSONサポート、容器や他の人が音源を持っている非常によくされているモジュールの数を、構築されました。//docs.python.org/3/library/index.html:次に、Pythonは、内蔵モジュールを学ぶが、これらのモジュールは継続的に更新され、より詳細なモジュールは、Pythonライブラリのオンラインリファレンスマニュアル、HTTPSを確認するのに役立ちます。

、SYSモジュール


SYSモジュールは、Pythonインタプリタを示し、主にPythonのインタープリターに関連する情報を取得するために使用されます。SYSモジュールに導入されるPythonの対話インタプリタ(コマンドライン)で、プログラム要素を表示することができ、モジュールは、モジュールは、例えば__all__変数ではないことに注意が提供されます。
>>>インポートSYS 
>>> [DIRにおけるSに対するS(SYS)ないs.startswith IF( '_')]
[ 'api_version'、 'のargv'、 'base_exec_prefix'、 'base_prefix'、 'builtin_module_names'、 ' BYTEORDER」、
'call_tracing'、 'callstats'、 '著作権'、 'のdisplayhook'、 'dllhandle'、 'dont_write_bytecode'、 'exc_info'、
'excepthook'、 'EXEC_PREFIX'、 '実行'、 '終了'、 'フラグ' 、 'float_info'、 'float_repr_style'、 'get_asyncgen_hooks'、
'get_coroutine_wrapper'、 'getallocatedblocks'、 'getcheckinterval'、 'getdefaultencoding'、 'getfilesystemencodeerrors'、
'getfilesystemencoding'、 'はGetProfile'、'getrecursionlimit'、 'GETREFCOUNT'、 'getsizeof'、 'getswitchinterval'、
'インターン' int_info 'gettrace'、 'getwindowsversion'、 'hash_info'、 'hexversion'、 '実装'、 'is_finalizing'、
'MAXSIZE'、 'maxunicode'、 'meta_path'、 'モジュール'、 'パス'、 'path_hooks'、 'path_importer_cache'、 'プラットフォーム'、
'プレフィックス'、 'PS1'、 'PS2'、 'set_asyncgen_hooks'、「set_coroutine_wrapper 」、 'setcheckinterval'、 'setprofile'、
'setrecursionlimit'、 'setswitchinterval'、 'settrace'、 'stderrの'、 '標準入力'、 'STDOUT'、 ''、 'バージョンthread_info'、
''、 'warnoptions' version_info、 'winverと']
すべての出力のsysモジュールは、今使っドキュメントとそれに対応する参照の携帯電話缶を行くためのモジュール実際の使用では、これらのプログラム単位のすべて書き留めする必要はありません、(変数、関数、などを含む)プログラム単位が含まれている上に。オンラインのsysモジュールの参照がhttps://docs.python.org/3/library/sys.htmlです。

以下の共通の属性とのsysモジュールの機能を理解します。
(1)、sys.argvの:Pythonプログラムを実行するために、コマンドライン引数を取得します。sys.argvの[0]は、現在のPythonプログラム(ファイル)、sys.argvの[1]プログラムのPython、sys.argvの[2]の最初の引数はに、第二パラメータである......前後。

(2)、sys.byteorder:ネイティブバイト順のインジケータを表示します。地元のバイトはビッグエンディアンモードであれば、モジュールは、ビッグを返し、そうでない場合は少し。

(3)、はsys.copyright:著作権Pythonインタプリタに関する情報を返します。

(4)は、sys.executable:このプロパティは、ディスク上に格納されたパスPythonのインタープリターを返します。

(5)、sys.exit():SystemExitを投げてプログラムを終了し、例外。それが最終的に実行されるブロックtryブロックに防止することができません。

(6)は、sys.flags:この読み取り専用プロパティは、実行指定されたPythonコマンドフラグを返します。

(7)、sys.getfilesystemencoding():リターンは、ファイルがUTF-8として、現在のシステム内のすべての文字を保存するには、GBKのような。

(8)、sys.getrefcount(オブジェクト) : オブジェクトの参照カウントを返します。参照オブジェクトのオブジェクト数が0の場合、オブジェクトが復元されます。

(9)、sys.getrecursionlimit():(デフォルトは1000)Pythonインタプリタが現在再帰の深さをサポートして返します。このプロパティは、setrecursionlimit()メソッドによってリセットすることができます。

(10)、sys.getswitchinterval():現在の間隔(デフォルト0.005)を切り替える戻り時間Pythonインタプリタスレッド。利用可能な()関数は、setswitchintervalによって変更されます。

(11)、sys.implementation:現在のPythonインタプリタを返します。

(12)、sys.maxsizeは:Pythonがサポートする最大の整数を返します。プラットフォーム32ビットプラットフォーム上32-1,64 2 ** 63-1 2

モジュール名と戻りロードモジュールとの間の対応する辞書の関係:(13)と、sys.modules。

(14)、のsys.path:この属性は、検索モジュールPythonパスのリストを指定します。プログラムで動的属性を変更することにより、ロードモジュールPythonパスを増加させることができます。

(15)、はsys.platform:Windowsプラットフォームの値が「win32の」ある識別子Pythonインタプリタプラットフォームを返します。

(16)、sys.stdinを:入力ストリームの標準システム、ファイルのようなオブジェクトへの復帰。

(17)、sys.stdoutの標準出力ストリーム・システム、ファイルのようなオブジェクトへの復帰。

(18)は、sys.stderrを持ち:システム・エラー出力ストリーム、ファイルのようなオブジェクトを返します。

(19)、ここで、sys.versionは:Pythonインタプリタの現在のバージョン情報を返します。

(20)、sys.winver:Pythonのインタープリタは、現在のメジャーバージョン番号を返します。

以下の例を使用していくつかの機能のsysモジュール:
SYSインポート
#ローカルディスプレイエンディアン・インジケータであること
を印刷(sys.byteorder)リトル番号の
Pythonインタプリタ著作権情報に関連付けられている#表示
印刷(はsys.copyright)
ディスクに保存されている#リターンパスPythonインタプリタ
プリント(SYS。実行可能)
現在のシステム内のファイルの保存#表示文字
印刷)#のUTF-8((sys.getfilesystemencoding)
最大の整数Pythonのサポートを表示するには#
を印刷(sys.maxsize)
のPythonインタプリタ#ショーのプラットフォーム
印刷(SYSを。プラットフォーム)のWin32#
Pythonインタプリタ#表示バージョン情報
印刷(ここで、sys.version)......#3.6.5 
戻りインタプリタ#Pythonのマスタの現在のバージョン番号
プリント(sys.winver)#3.6 

上記のコードを実行して、次のように出力されます:
リトル
。著作権(C)2001年から2018年のPython Software Foundationの
すべての権利を保有。

著作権(C)2000 BeOpen.com。
全著作権所有。

国家研究イニシアティブのための著作権(C)1995から2001社。
全著作権所有。

著作権(C)1991から1995 Stichting Mathematischセントラム、アムステルダム。
全著作権所有。
C:\はProgramData \ Anaconda3 \ python.exe 
UTF-8 
9223372036854775807 
win32の
3.6.5 |アナコンダ株式会社| (デフォルトでは、2018年3月29日、夜01時32分41秒)MSCはv.1900 64ビット(AMD64)] 
3.6

1、動作パラメータへのアクセス

ARGV SYSモジュールは、プロパティの実行Pythonのコマンドラインパラメータファイルを取得してもよい属性値は、リストのargvで、ARGV [0]のPythonのファイル名であり、ARGV [1] argvリストの2番目の要素であり、最初のファイルは、Pythonの実行されパラメータ。対応する、ARGV [2]は、第二のパラメータである.......

記載さらなるパラメータとしての実施例を参照して以下のargvは、新しいファイルをargv_test.py次のように、ファイルのコードがあります。

SYSインポートARGVから
長リスト#1 ARGV出力
:プリント((ARGV)lenの"ARGV長リストである")
#argvリストの各要素横断
ARGVのArgのために:
  プリント(アルギニン)

符号長出力リストARGV、ARGV、リストの各要素は、次のようにコマンドラインを実行した結果です。

コマンドラインコマンド:pythonのargv_test.py
出力されます。
argvリストの長さがある:. 1
argv_test.py

1、出力から見ることができ、最初の要素は、Pythonのソースファイル「argv_test.py」ARGVあり、argvリストの長さです。のは、コマンドラインで実行し続けてみましょう:
コマンドラインコマンド:pythonのargv_test.pyハローワールド
出力されます:
argvリストの長さは次のとおりです。3 
argv_test.py 
こんにちは
世界
Pythonのソースファイル「argv_test.py」の背後に、この実行は、2つのパラメータの「Hello World」を追加すると、出力はリストの長さから見ることができ、この操作から、3では、コマンドで見ることができますライン操作、パラメータ自体にスペースが含まれている場合、パラメータが(「」)が必要とされるパラメータとの間のセパレータとしてデフォルトで空間囲みパラメータは二重引用符で示されるように、例えば、次のコマンドを実行し、ことは明らかです。
コマンドラインコマンド:Pythonのargv_test.py " Hello Worldの" 
出力は次のとおりです。
argvリストの長さ: 2 
argv_test.py 
のHello World
出力から見ると、argvリスト2の長さは、Hello Worldのパラメータとして考えることができます。二重引用符のコマンドラインは、単一引用符場合は、Hello Worldのパラメータとして表示されません。

2、動的経路変更モジュールのローディング

path属性SYSモジュールは、第1のパスが作成されていれば、負荷経路Pythonモジュールを動的に変更することができます。属性値のsys.pathリストであるため、リストをアペンド直接使用することができる()メソッドがロードされ、動的に、例えば、パスに追加します。

SYSインポート
#は、動的に電子を追加:\ mypymoduleパスをモジュールロードへのパスとして
sys.path.append(「E:\\ mypymodule」) 負荷E:\ mypymoduleパスの下のハローモジュール
のインポートハロー
上記のコードは正常に実行できるようにするには、Eドライブにmypymoduleディレクトリを作成し、そのディレクトリにhello.pyモジュールファイルを作成する必要があります。

二、osモジュール

osモジュールは、オペレーティングシステム、プログラムを実行する場所についての情報を取得するためのオペレーティングシステムに関連するモジュールです。Pythonの対話インタプリタOSインポートモジュールは、利用可能なOS .__ all__コマンドは、特性と機能のすべてを含む、モジュールの公開インターフェースを表示します。モジュールのプロパティと機能にのみすることができ、共通の属性と機能を持っている必要があり、多くのがあります。モジュールの公式サイト参照はhttps://docs.python.org/3/library/os.htmlです。以下は、共通の属性とosモジュールの関数です。

(1)、os.name:同等の依存モジュールが導入されているオペレーティングシステムの名前を返し、通常返す「POSIX」、「NT」、1 "Javaの。

(2)、はos.environ:すべての環境変数で構成される現在のシステム上の辞書への復帰。

(3)、os.fsencode(ファイル名) : この関数は、クラスパス(パスのような)ファイル名をエンコードします。

(4)、os.fsdecode(ファイル名) : この関数は、クラスパス(パス等)、ファイル名を復号します。

(5)、PathLike:これは、クラスパス(パスのような)オブジェクトを表すクラスです。

(6)は、os.getenv(キー、デフォルト=なし): 指定された環境変数の値を取得します。

(7)は、os.getlogin():現在のシステムのログイン・ユーザー名を返します。機能に対応する()、os.getgroups()、os.getuid有する os.getgid() これらの関数は、UNIXシステム上で通常は利用可能であるなど、ユーザーID、ユーザーグループ、グループIDを取得する機能などが挙げられます。

(8)、os.getpid():現在のプロセスIDを取得します。

(9)、os.getppid():現在のプロセスIDの親を取得します。

(10)、os.putenv(キー、値): この機能は、環境変数を設定するために使用されます。

(11)、os.cpu_count():現在のシステムのCPUの数を返します。

(12)、os.sep:セパレータリターンパス。

(13)、os.pathsep:現在のシステム上の複数のパスの間にセパレータを返します。(;); WindowsではセミコロンがあるUNIXシステムおよびUNIX-コロンで(:)。

(14)、os.linesep:現在のシステムの復帰改行。Windowsでは"\ rを\ n"は、UNIXシステムである"\ n"は、Mac OS Xは"\ r"があるで。

(15)、os.urandom(サイズ) : 暗号化として使用するのに適した返しの目的は、サイズがそのバイトまでのバイト。この関数は、ランダムバイトのランダム性の特定のソースによってオペレーティングシステムを返すランダムバイト、ほとんどのシーンの暗号化のために、一般的に予測不可能です。

 モジュールのOS部分関数の使用例:

OSのインポート
#輸入依存のディスプレイモジュールのオペレーティングシステム名の
印刷(os.name)NT#
環境変数PYTHONPATHのの#取得値
を印刷(os.getenv(「PYTHONPATH」))#; E :. \ mypymodule 
#は現在のシステムのログを返します。ユーザ名の
印刷(os.getlogin())#マイケル
#は、現在のプロセスIDを取得します
印刷(os.getpid())
#GET親プロセスIDの現在のプロセス
印刷(os.getppid()) リターンのCPU現在のシステムの数
の印刷を( 。os.cpu_count())#4 
#セパレータリターンパス
プリント(os.sep)#\ 
#は、パスセパレータ複数の現在のシステムを返し
、印刷(os.pathsep)# リターン電流システム改行
プリント(OSを。 linesep)#\ R&LT \ N- 
#暗号化などの使用に適して返された、の目的は、5つのバイトまでのバイトを
印刷(os.urandom(5))# b'v \ xc9!\ x11の* ' 

の実行コード、次の出力:
NT
。; E:\ mypymodule 
マイケル
1832年
10072 
4 
\ 
; 


b'v \ xc9!\ x11の*」

出力は、Windowsのシステムで見ることができますから、Pythonの輸入依存モジュールのオペレーティングシステム名は「NT」であり、現在はログオンしているユーザー名マイケル・システム、現在のプロセスIDが1832であり、現在のプロセスIDの父は10072であり、現在システム上の4をしていますCPU、システムセパレータの電流経路が「\」である複数のパスの現在のシステムセパレータセミコロン(;)、現在のシステムは改行「\ R \ n」(出力変換にあります2行の空白行)。

osモジュールは、機能と操作するファイルとディレクトリの機能、学習の後の部分を持っています。osモジュールの下でも、新しいプロセスを開始するために使用することができ、プロセス管理機能が含まれ、プロセスは上で懸濁し、そうされています。次のようにOSのモジュールの機能は、プロセス管理に関連付けられています。

 

(1)、os.abort():現在のプロセスにSIGABRT信号を生成します。UNIXシステムでは、デフォルトの動作では、カーネルダンプを生成することで、Windowsシステムでは、プロセスはすぐに終了コード3を返します。

(2)、os.execl(パス、 arg0に、ARG1、...): この関数は、同様のシステムのパフォーマンス機能を有し、そのようなos.execle()、os.execlp()など、これらの機能は、パラメータリストを使用しますarg0は、arg1には、...によって表される実行可能ファイルのパスを実行します。

注:あなたがPythonプログラムを実行するには、このコマンドを使用する場合os.exec *(POSIX関数は直接マッピングされたシステムです)ので、入ってくるパラメータは何の効果もARG0ません。以下のためのos._exit(n)は、Pythonインタプリタを終了することを強制します。ブロックは最終的に実行を阻止阻止しようとする配置しました。

(3)、os.forkpty():フォーク子プロセス。

(4)、os.kill(PID、 SIG): PIDに対応するSIG信号送信プロセスは、プロセスを終了します。

(5)、os.killpg(PGID、 SIG): SIGはPGIDに対応するプロセスグループに信号を送ります。

(6)、os.popen(CMD、モード= R「」、緩衝= -1): パイプラインに開口するリードとライトパイプ(rは読み取り専用モードで読み書きモードがRWである場合、コマンドcmdを配管)、バッファリングパラメータと、内蔵バッファopen()関数は、同じ意味を持ちます。この関数は、代わりにバイトの文字列を、読み書き用のファイルオブジェクトを返します。

(7)、os.spawnlは(モードは、パスは、...): この機能はまた、これらの機能は、新しいプロセスで実行するために使用される等os.spawnle()、os.spawnlp()と同様の機能、一連の特徴新しいプログラム。

(8)、os.startfile(パス[ 、openation]): openrationに対応する動作を実行するために指定されたファイルのファイルに関連付けられたツールの使用。あなたはopenration操作、オープン(オープン)操作のデフォルトの実装を指定しない場合。openrationパラメータは、有効なコマンドライン操作などのオープンなどのプロジェクト、(オープン)、編集(編集)、印刷(プリント)と上のようにする必要があります。

(9)、os.system(コマンド) : 指定のコマンドは、オペレーティング・システム上で実行します。

プロセス管理機能の例に関連したOSのモジュールの機能は以下の通りであります:

輸入OS、SYSは、
プラットフォーム上で#実行するためのコマンドCMD 
#os.system( 'CMD')
\ abc.xlsxファイル:Eを開くために#を使用エクセル
os.startfile( 'E:\ abc.xlsx')
os.spawnl(OSを。 P_NOWAIT、R'C:\プログラムファイル(x86の)\ Geany \ binに\ geany.exe '' ') 使用Pythonコマンドのsys_test.pyファイル
パス= sys.executable 
os.execl(パス、 ""、' sys_test .py '' I「)

直接また、Pythonコマンドを使用してsys_test.pyファイルを実行し、オープンGeanyツールも、コードエディタツールで上記のコードを実行して、あなたがプログラムを実行した後にファイルを開くにはabc.xlsx使用Excelを見ることができます。os.system関数は、プログラム、プロセスは(新しいプログラムを実行するためos.system(「cmdは」)このコード行をコメント解除した場合、あなただけのCMDコマンドラインプログラムを実行し始めたプログラムが表示されます、それは)ですこれは、既存のプロセスに置き換えられます。

注:使用os.execl()関数が実行され、新たなプロセスは、元のプロセスを置き換えるので、決勝でのコード行以上のコードされます後。

おすすめ

転載: www.cnblogs.com/Micro0623/p/12145772.html