我正在编写一种在Mac的资源管理器窗口中打开路径的方法。所以,我在python中使用命令模块的getstatusoutput方法。我有以下代码:
Path = "file:///" + USERHOME
filePath = os.path.join(Path, filePath)
ret, out = commands.getstatusoutput('open "%s"' % filePath)
此方法适用于大多数文件/文件夹,但名为“old,; {}&”的文件/文件夹除外。在这种情况下,如果我没有在上面提到的实际路径之前放置“file:///”,它就可以正常工作。我不明白为什么会这样。谁能指出我在这里缺少什么?
答案 0 :(得分:0)
如果您使用的是2.7+版本,请不要使用命令模块。它已被弃用,取而代之的是subprocess module。
其次不要使用file:///前缀。使用-R标志告诉open在Finder中显示它。从公开的手册页:
-R显示Finder中的文件而不是打开它们。
示例:
import subprocess
subprocess.Popen(["open", "-R", "/path/to/myfile/old,;'{}&"])