別の言い方をすれば、最初に実行しないで、どのファイルがsubprocess.Popen(file)
によって実行されるのかを知るプラットフォームがありますか?'which'コマンドに相当するPythonはありますか
答えて
私は、Python 3.3は、実行可能ファイルを発見するクロスプラットフォームの手段を提供するshutil.which()
を追加Pythonライブラリ
>>> def which(pgm):
path=os.getenv('PATH')
for p in path.split(os.path.pathsep):
p=os.path.join(p,pgm)
if os.path.exists(p) and os.access(p,os.X_OK):
return p
>>> os.which=which
>>> os.which('ls.exe')
'C:\\GNUwin32\\bin\\ls.exe'
で何も存在しないと信じて:
http://docs.python.org/3.3/library/shutil.html#shutil.which
戻るへのパス指定されたcmdが呼び出された場合に実行される実行可能ファイル。 cmdが呼び出されない場合はNoneを返します。
サンプルコール:
>>> shutil.which("python")
'/usr/local/bin/python'
>>> shutil.which("python")
'C:\\Python33\\python.EXE'
残念ながら、これは2.7.x.にバックポートされていませんPythonの2と3のための
バージョン3.3でのshutilの実装のためのPythonソースはここにあります(数十行のみ):http:// hgあなたが1110行目を 'もしあれば(pat.htのextのための[cmd.lower().endswith(ext.lower())]に変更したならば、' .python.org/cpython/file/6860263c05b3/Lib/shutil.py#l1068 – joemaller
) '(ジェネレータをリストに変換します)、Python 2.7で動作するよりも優れています。 – cdhagmann
バックポート:https://github.com/mbr/shutilwhich –
オプション:
from distutils.spawn import find_executable
find_executable('python') # '/usr/bin/python'
find_executable('does_not_exist') # None
find_executable(executable, path=None)
は単に 'パス' に記載されているディレクトリに '実行' を見つけようとします。 'path'がNone
の場合、デフォルトはos.environ['PATH']
になります。実行可能ファイルへの完全なパスを返します。見つからない場合はNone
を返します。
which
とは異なり、find_executable
は結果が実行可能とマークされていることを実際にチェックしません。 subprocess.Popen
がファイルを実行できることを確実にしたいかどうかを確認するには、os.access(path, os.X_OK)
に電話してください。
またノートの
、Pythonの3.3+のshutil.which
は、サードパーティモジュールwhichcraftを経由してバックポートとPython 2.6、2.7のために利用できるように、および3.xされています。
上記のGitHubページ(pip install git+https://github.com/pydanny/whichcraft.git
)またはPythonパッケージインデックス(pip install whichcraft
)からインストールできます。それは、このようなように使用することができます:デフォルトでは
from whichcraft import which
which('wget') # '/usr/bin/wget'
- 1. bashコマンド `set -e`に相当するpython3はありますか?
- 2. pythonの__getattr__メソッドに相当するjavascriptはありますか?
- 3. プリフューズビジュアライゼーションツールキットに相当するPythonはありますか?
- 4. Pythonのschedモジュールに相当するJavaはありますか?
- 5. HighLineに相当するPythonはありますか?
- 6. perlのmodule-starterに相当するpythonはありますか?
- 7. PHP-FPMに相当するPythonはありますか?
- 8. Python/Djangoに相当するPHPのhash_hmacはありますか?
- 9. PythonのcProfileに相当するJuliaプロファイラはありますか?
- 10. VBAに相当するPythonのpass文はありますか?
- 11. Python Numpyの "whos"コマンドに相当する
- 12. PythonでNODE_ENVに相当するものがありますか?
- 13. Unixの "which"コマンドと同様に機能するPerlモジュールはありますか?
- 14. R:Stataのcodebookoutコマンドに相当するものはありますか?
- 15. DjangoのApache "Alias"コマンドに相当するものはありますか?
- 16. PythonにはRakeに相当するものはありますか?
- 17. pythonには、perlのNet :: BGPライブラリに相当するライブラリがありますか?
- 18. cmd 'call'コマンドに相当しますか?
- 19. Google App Engine Pythonに相当するSQLビューはありますか?
- 20. TCPDFの 'annotate'関数に相当するPython ReportLabはありますか?
- 21. Pythonのprintfハッシュ置換に相当するJavaはありますか?
- 22. Pythonのglobモジュールに相当する正規表現はありますか?
- 23. Pythonのrange()に相当するDjangoテンプレート言語はありますか?
- 24. Pythonの `if __name__ == '__main __'`に相当するPerlはありますか?
- 25. Rのqchisq関数に相当するPythonはありますか?
- 26. Rのsample()関数に相当するPythonはありますか?
- 27. Pythonのfile_put_contentsとiconvに相当するものはありますか?
- 28. JavaのAWT Robotクラスに相当するPythonはありますか?
- 29. ClearCaseにRTCに相当する「サスペンドモード」はありますか?
- 30. Passport.jsはPythonに相当しますか?
https://github.com/amoffat/pbs/blob/master/pbs.py#L95 –
、サブプロセスは親プロセスの環境をinherents。したがって、PATH(または該当するOSのOS)内の実行可能ファイルの場合は、その場所を指定する必要はありません。 –
@JoshLeeはPBSがもう利用できないように見えます。 – Joe