2017-05-20 8 views
0

Finderで見ることができるGoogle Earth.appを開くスクリプトを作成しようとしていますが、アプリケーションフォルダに移動しても表示されません。 Google Earth.appのファイルパスをsudo find/-iname *.app/Applications/Google Earth.app)とすると、他の投稿を見てみました。このファイルを見つけようとすると、「No such file or directory」が表示されます。 Finderにあるアプリケーションがターミナルに表示されない理由を説明してください。また、正しいファイルパスを見つけるにはどのようにすればいいのですか?subprocess.Popen()を使ってPythonでGoogle Earthを開くことができます。スクリプト、ファイルパスなしでGoogle Earthを開こうとしています

答えて

0

ここで2つの問題が発生します。

1)そのパスはおそらく正しいです。あなたは、特に正しく検索を使用していません。 sudo find/-name "*.app"*appの引用符に注意してください)を行う必要があります。マニュアルページから:

-inameパターン 類似した名前ですが、大文字と小文字は区別されません。例えば、パターン「fo *」および「F ??」は、 'Foo'、 'foo'、 'fOo'などのファイル名と一致します。これらのパターンでは、シェルによるファイル名の拡張とは異なり、最初の '。' '*'でマッチさせることができます。つまり、find -name * barはファイル '.foobar'と一致します。もちろんパターンを引用する必要があります。そうしないと、シェルはワイルドカード文字を展開します。

2)subprocess.Popen(["/Applications/Google Earth.app"], shell=True)を試してください。 shell=Trueのセキュリティ上の問題については、ユーザーが入力しない限り、あまり心配しないでください。 Google Earthへのパスを使用するのがハードコードされていれば、大丈夫です。ただし、ロジックにユーザー入力がある場合、を使用しないでください。shell=Trueを使用してください。 shell=Trueは、シェルメタキャラクタがコマンドに含まれていると動作することを意味します。あなたがそれを必要とする理由は、パスにスペースがあるので、subprocess.Popen()はコマンドの解析に問題があるからです。また、os.system("/Applications/Google Earth.app")を使用することもできます。

+0

このファイルを試してみると、そのようなファイルやディレクトリはまだ存在しません。このアプリがあるディレクトリに変更することで、pwdを印刷することができます。私がApplicationsフォルダに移動すると、実際には 'Google Earth.app.'というファイルが表示されません。どのように隠されていますか? – eeskonivich

+0

あなたのファイルシステムを見ることができないと、私は本当によくわかりません。 '/'で 'find'を実行すると、常にそのトリックを行うべきです(しかし、実行には非常に時間がかかるかもしれません)。あなたはどのOSを使用していますか? – mwm314

+0

'os.chdir(the_directory_you_want_to_go_to)'は作業ディレクトリbtwを変更します。 'os.getcwd()'はあなたに現在の作業ディレクトリ(略してcwd、したがって関数名)を与えます。 – mwm314

関連する問題