Python "шоу в поиске" - PullRequest
       21

Python "шоу в поиске"

5 голосов
/ 19 августа 2010

Как я могу запустить новое окно Finder (или Explorer на Win) из python в определенной папке. Поведение, которое я ищу, является эквивалентом ссылки «Показать в поиске» в контекстном меню треков в iTunes или в большинстве других программ.

В настоящее время у меня есть пользовательский интерфейс, построенный на PyQt, и я бы хотел добавить опцию меню, например «показать папку журнала» или что-то подобное, что бы открыло новое окно поиска.

UPDATE:

Из katrielalex совет, пытающийся subprocess.Popen("/System/Library/CoreServices/Finder.app") бросков и OSError: Permission denied. Попытка запустить Finder.app двойным щелчком мыши говорит о том, что он используется OS X и не может быть открыт.

Конечно, должен быть способ открыть новое окно Finder.

Ответы [ 4 ]

12 голосов
/ 19 августа 2010

Для OS X вы можете использовать интерфейс Apple Events (AppleScript) в Finder через py-appscript :

>>> from appscript import *
>>> file_to_show = "/Applications/iTunes.app"
>>> app("Finder").reveal(mactypes.Alias(file_to_show).alias)
app(u'/System/Library/CoreServices/Finder.app').startup_disk.folders[u'Applications'].application_files[u'iTunes.app']
>>> #  Finder window of "Applications" folder appears with iTunes selected

EDIT:

Еще более простым решением в OS X 10.6 является использование новой опции -R (Показать) для команды open (см. man 1 open):

>>> import subprocess
>>> file_to_show = "/Applications/iTunes.app"
>>> subprocess.call(["open", "-R", file_to_show])
1 голос
/ 30 сентября 2013
from subprocess import call
targetDirectory = "~/Desktop"
call(["open", targetDirectory])
1 голос
/ 19 августа 2010

Windows:

>>> import subprocess
>>> subprocess.Popen( "explorer i:" )
<subprocess.Popen object at 0x00C46DB0>
0 голосов
/ 19 августа 2010

Для Finder команда оболочки

open ~/

откроет новое окно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...