2017-07-08 13 views
-1

私はちょうどpdf-viewerの名前が与えられています。pdf-viewerへのパスを見つける

1)これはpdf-viewerが存在するかどうか確認したいと思います。

2)このPDFビューアが存在する場合は、そのパスを探したいと思います。

私はどのようにアプローチする必要があるのか​​分かりません。

+0

どのオペレーティングシステムですか? –

+0

Linuxです。しかし、それはOSに依存していますか? – Pazu

答えて

1

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のデフォルト)をインストールすることをお勧めします。

+0

これはpdf-viewerのユニークな一致の場合に私に提供されますか? – Pazu

+0

ユニークなマッチングが何を意味するか分かりません。文字列 "pdf-viewer"と一致するファイルがシステム上に表示されます。正確なファイル名を一致させたい場合、 'if 'pdf-viewer in file.lower():' '' pdf-viewer' == file: ' EXACTファイル名にのみ一致するので、ファイルに.appや.exeのような拡張子がある場合、結果は返されません。 – iceblueorbitz

関連する問題