私はちょうどpdf-viewer
の名前が与えられています。pdf-viewerへのパスを見つける
1)これはpdf-viewer
が存在するかどうか確認したいと思います。
2)このPDFビューアが存在する場合は、そのパスを探したいと思います。
私はどのようにアプローチする必要があるのか分かりません。
私はちょうどpdf-viewer
の名前が与えられています。pdf-viewerへのパスを見つける
1)これはpdf-viewer
が存在するかどうか確認したいと思います。
2)このPDFビューアが存在する場合は、そのパスを探したいと思います。
私はどのようにアプローチする必要があるのか分かりません。
Linuxの場合は、terminalコマンドを使用できます。 PDFビューアは、コマンドラインツールを持っている場合は、そのような単純な何かができる:
import subprocess
check = subprocess.check_output(['which', 'ls'])
print check
そうでない場合は、あなたがOSの独立した歩行を実行することができますので、のようなファイル名を検索します。
import os
matches = []
for root, dirs, files in os.walk(os.path.join('path', 'to', 'search'):
for file in files:
if 'pdf-viewer' in file.lower():
filepath = os.path.join(root, file)
matches.append(filepath)
print matches
これは歩いていきますMac/Linuxでは '/ path/to/search'から、またはPCでは\ path \ to \で始まるすべてのディレクトリです。この例では、大文字と小文字を区別せずに、各ディレクトリ内のすべてのファイル名を検索して一致します。一致するものが見つかった場合は、カレントディレクトリの絶対パスと一致するファイル名を再作成し、マッチリストに追加します。次に、あなたはマッチのリストであなたが望むことをすることができます。
os.Walk()関数の使い方についてはたくさんの情報がありますが、Python 2.7の場合は、はるかに高速なScanDir(Python 3のデフォルト)をインストールすることをお勧めします。
これはpdf-viewerのユニークな一致の場合に私に提供されますか? – Pazu
ユニークなマッチングが何を意味するか分かりません。文字列 "pdf-viewer"と一致するファイルがシステム上に表示されます。正確なファイル名を一致させたい場合、 'if 'pdf-viewer in file.lower():' '' pdf-viewer' == file: ' EXACTファイル名にのみ一致するので、ファイルに.appや.exeのような拡張子がある場合、結果は返されません。 – iceblueorbitz
どのオペレーティングシステムですか? –
Linuxです。しかし、それはOSに依存していますか? – Pazu