Python "在查找器中显示
我想知道怎么用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 个回答
Windows:
>>> import subprocess
>>> subprocess.Popen( "explorer i:" )
<subprocess.Popen object at 0x00C46DB0>
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这时候,我们可以去一些技术论坛,比如StackOverflow,寻求帮助。在这些论坛上,很多人会分享他们的经验和解决方案。
当你在这些论坛上提问时,记得描述清楚你的问题,包括你遇到的错误信息、你使用的代码,以及你希望实现的目标。这样,其他人才能更好地理解你的问题,并给出有效的建议。
另外,查看别人提问和回答的问题也是一个很好的学习方式。你可以从中获得灵感,了解不同的解决方案,以及如何处理类似的编程难题。
总之,技术论坛是一个很好的资源,可以帮助你解决编程中的各种问题。只要你认真描述问题,并积极参与讨论,就能从中受益匪浅。
from subprocess import call
targetDirectory = "~/Desktop"
call(["open", targetDirectory])
在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])