子进程:权限和没有此类文件或目录错误消息

Subprocess: Permission and No such file or directory error messages

我在 Mac 运行 OS 10.15.4 上使用 Python 3.7 with Idle 并且正在尝试学习子流程的基础知识,但收效甚微尽管付出了很多努力。

import subprocess
subprocess.Popen('/Applications/Safari.app')

这会导致以

结尾的冗长错误消息
PermissionError: [Errno 13] Permission denied: '/Applications/Safari.app'

删除第一个反斜杠并改为使用

subprocess.Popen('Applications/Safari.app')

结果

FileNotFoundError: [Errno 2] No such file or directory: 'Applications/Safari.app': 'Applications/Safari.app'

当我用我更感兴趣的 TextEdit 替换 Safari 时,无论我是否包含反斜杠,我都会收到这些错误消息中的第二条。

使用可执行文件的完整路径:

subprocess.Popen('/Applications/Safari.app/Contents/MacOS/Safari')
<subprocess.Popen object at 0x1023414f0>

或者还有 webbrowser 模块:

>>> import webbrowser
>>> s = webbrowser.get('safari')
>>> s.open('https://google.com')