Python "在查找器中显示

15 投票
5 回答
15479 浏览
提问于 2025-04-16 03:00

我想知道怎么用Python从一个特定的文件夹打开一个新的Finder窗口(在Windows上是Explorer)。我想要的效果就像在iTunes或者其他很多程序中,右键点击某个文件时出现的“在Finder中显示”这个选项。

我现在有一个用PyQt做的用户界面,我想加一个菜单选项,比如“显示日志文件夹”之类的,这样点击后就能弹出一个新的Finder窗口。

更新:

根据katrielalex的建议,我尝试了subprocess.Popen("/System/Library/CoreServices/Finder.app"),结果出现了OSError: Permission denied的错误。双击Finder.app也提示说它正在被OS X使用,无法打开。

肯定有办法可以打开一个新的Finder窗口。

5 个回答

1

Windows:

>>> import subprocess
>>> subprocess.Popen( "explorer i:" )
<subprocess.Popen object at 0x00C46DB0>
3

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这时候,我们可以去一些技术论坛,比如StackOverflow,寻求帮助。在这些论坛上,很多人会分享他们的经验和解决方案。

当你在这些论坛上提问时,记得描述清楚你的问题,包括你遇到的错误信息、你使用的代码,以及你希望实现的目标。这样,其他人才能更好地理解你的问题,并给出有效的建议。

另外,查看别人提问和回答的问题也是一个很好的学习方式。你可以从中获得灵感,了解不同的解决方案,以及如何处理类似的编程难题。

总之,技术论坛是一个很好的资源,可以帮助你解决编程中的各种问题。只要你认真描述问题,并积极参与讨论,就能从中受益匪浅。

from subprocess import call
targetDirectory = "~/Desktop"
call(["open", targetDirectory])
27

在OS X系统上,你可以通过Finder的Apple Events(也就是AppleScript)接口来使用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

补充:

在OS X 10.6版本上,还有一个更简单的方法,就是使用新的-R(显示)选项来配合open命令(可以查看man 1 open了解更多):

>>> import subprocess
>>> file_to_show = "/Applications/iTunes.app"
>>> subprocess.call(["open", "-R", file_to_show])

撰写回答