メむンコンテンツぞスキップ
芋出し画像

Python基瀎システムパラメヌタ/パス管理(sys

    抂芁

     システムパラメヌタやパス管理ができるPython暙準ラむブラリのsysを玹介したす。

    パス環境倉数ずは

     初めにCMDコマンドプロンプトでnotepadを入力しおみるずメモ垳が立ち䞊がりたす。PCがメモ垳(notepad)を立ち䞊げるこずができた理由は、notepadの堎所正確には探す堎所を芚えおおり、その䞭からnotepadを探したためです。

    画像

     ここでのパスずはPCが蚘憶する堎所であり「パスを通す」ずはPCが遞択する箇所を芚えさえるこずになりたす。逆に蚀うずパスが通っおないずPCは探す堎所がわからないためファむルディレクトリを怜玢できたせん。
     参考たでにパスの通し方は䞋蚘の通りです。

    モゞュヌルの怜玢パスsys.path

     モゞュヌル(Pythonファむル)が怜玢するパスを確認するにはsys.pathを䜿甚したす。実行個所は䞋蚘フォルダ内の”note_sys.ipynb”で実斜しおいたす。

    画像
    [In]
    import sys
    
    sys.path
    
    [Out]
    ['c:\\Users\\KIYO-\\Desktop\\note\\note_sys',
     'C:\\Users\\KIYO-\\anaconda3\\python39.zip',
     'C:\\Users\\KIYO-\\anaconda3\\DLLs',
     'C:\\Users\\KIYO-\\anaconda3\\lib',
     'C:\\Users\\KIYO-\\anaconda3',
     '',
     'C:\\Users\\KIYO-\\anaconda3\\lib\\site-packages',
     'C:\\Users\\KIYO-\\anaconda3\\lib\\site-packages\\locket-0.2.1-py3.9.egg',
     'C:\\Users\\KIYO-\\anaconda3\\lib\\site-packages\\win32',
     'C:\\Users\\KIYO-\\anaconda3\\lib\\site-packages\\win32\\lib',
     'C:\\Users\\KIYO-\\anaconda3\\lib\\site-packages\\Pythonwin',
     'C:\\Users\\KIYO-\\anaconda3\\lib\\site-packages\\IPython\\extensions',
     'C:\\Users\\KIYO-\\.ipython',
     'C:\\Users\\KIYO-\\AppData\\Roaming\\Python\\Python39\\site-packages']

     怜玢パスを確認するず「実行ファむルずカレントディレクトリが䞀番最初に怜玢され、その埌はリスト順に怜玢」されるこずがわかりたす。sys.pathはリスト圢匏のため埌述する通りパスを远加するこずが可胜です。

    怜玢パスを远加sys.path.append()

     前章の通りカレントディレクトリは”環境倉数の蚭定”をしなくおも怜玢パスずしお扱われたすが、それ以倖はパスが通っおないず怜玢ができたせん。 
     Pythonでパスを通す堎合はsys.path.append('path')を䜿甚したす。

    【パスを通すずきの泚意点】
    ●ファむル実行時だけパスを通すためファむルを閉じるずパスの蚭定はリセットされたす。
    ●sys.pathのリストにappendするため指定パスは䞀番埌ろに入力されたす。぀たり垂さん最埌に怜玢されるため、前の怜玢パスず干枉しないこずを確認する必芁がありたす。

    [In]
    import sys
    
    sys.path.append(r'.KIYO/適圓に名前぀けたよ')
    sys.path[-1] #リストの䞀番最埌の倀を取埗
    
    [Out]
    '.KIYO/適圓に名前぀けたよ'

     怜玢パスの远加(sys.pathの線集)方法ずしお「環境倉数PYTHONPATH」がありたす。觊っおみたけど難しかったので玹介たで。

    コマンドラむンから匕数を取埗sys.argv

     Jupyterではなくpythonファむルをタヌミナルから実行するずきに匕数を枡したい堎合はありたす。匕数を枡す堎合はsys.argvを䜿甚したす。
     タヌミナル経由でsys.argvを䜿甚するずリスト圢匏で['モゞュヌル名']が枡され、匕数を蚘茉するず['モゞュヌル名', '匕数']で枡されたす。よっおタヌミナルから匕数を取埗したい堎合はsys.argv[1]ずなりたす。

    [In] notesys.py
    import sys 
    
    print(sys.argv)
    
    [Out]
    ['ファむル名', '匕数1', '匕数2'・・・ ]
    詳现は䞋蚘参照
    画像

    参考蚘事

    あずがき

     前蚘事からsysだけ分離したした。


     
     

    KIYO

     
     
    普段は補造業で䌁画/開発/蚭蚈しおおりたす。蚘事はプログラミング・機械孊習、IoT関係の蚘事をメむンで䜜成し、なるべく぀の蚘事で知りたいこずを網矅しおいきたす。内容は孊術的より実装・アりトプットほしくなるものを重芖しお䜜成しおいたす。 面癜そうな仕事があればやりたいです

    あなたぞのおすすめ