python中的getstatusoutput返回错误的结果

时间:2015-12-14 09:48:48

标签: python macos

我正在编写一种在Mac的资源管理器窗口中打开路径的方法。所以,我在python中使用命令模块的getstatusoutput方法。我有以下代码:

Path = "file:///" + USERHOME
filePath = os.path.join(Path, filePath)

ret, out = commands.getstatusoutput('open "%s"' % filePath)

此方法适用于大多数文件/文件夹,但名为“old,; {}&”的文件/文件夹除外。在这种情况下,如果我没有在上面提到的实际路径之前放置“file:///”,它就可以正常工作。我不明白为什么会这样。谁能指出我在这里缺少什么?

1 个答案:

答案 0 :(得分:0)

如果您使用的是2.7+版本,请不要使用命令模块。它已被弃用,取而代之的是subprocess module

其次不要使用file:///前缀。使用-R标志告诉open在Finder中显示它。从公开的手册页:

  

-R显示Finder中的文件而不是打开它们。

示例:

import subprocess
subprocess.Popen(["open", "-R", "/path/to/myfile/old,;'{}&"])