运行一个chrome应用程序,其路径包含空格。在Mac和Linux上得到了不同的结果

运行一个chrome应用程序,其路径包含空格。在Mac和Linux上得到了不同的结果,linux,macos,selenium,shell,os.system,Linux,Macos,Selenium,Shell,Os.system,我需要为selenium运行一个chrome应用程序。在shell中,我能够在Linux和Mac上成功地执行它。如果我使用os.system从python脚本启动它,Linux操作系统似乎运行起来没有任何问题,但是Mac不工作。错误是找不到这样的文件或目录 Linux中chrome的路径是-Spaced Folder/google chrome import os os.system('Spaced\ Folder/google\ chrome') # worked well os.system

我需要为selenium运行一个chrome应用程序。在shell中,我能够在Linux和Mac上成功地执行它。如果我使用os.system从python脚本启动它,Linux操作系统似乎运行起来没有任何问题,但是Mac不工作。错误是找不到这样的文件或目录

Linux中chrome的路径是-
Spaced Folder/google chrome

import os
os.system('Spaced\ Folder/google\ chrome') # worked well
os.system('"Spaced Folder"/"google chrome"') # Also worked well
但同样的方法在Mac上不起作用。与实际代码的唯一区别是Mac有路径-
/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome——远程调试端口=9222——用户数据dir=“data”

其中,远程调试端口和用户数据目录是在本地主机9222上使用单独的用户数据运行chrome的标志,可以忽略,因为它在Linux上成功执行


注意:我认为subprocess.call不起作用。它能够通过正确的转义执行bash命令,但无法运行chrome。我在windows上看到了类似的堆栈溢出讨论,但建议使用子流程,但没有效果。提前感谢。

我无法在macOS catalina上使用python 2.7或3.6中的
os.system('/Applications/Google\Chrome.app/Contents/macOS/Google\Chrome--remote debugation port=9222---user data dir=“data”')
。Chrome按预期打开。这很奇怪。虽然这在mac中的shell中工作,但os.system执行此操作时缺少反斜杠。我得到的输出是
/Applications/Google Chrome.app/Contents/MacOS/Google Chrome--remote debug port=9222--user data dir=“data”
。找不到这样的文件或目录。然而,它应该尝试使用反斜杠执行前一行,以便shell采取必要的操作来转义它,而不是python转义它。为了避免这种情况,我尝试使用os.system(“…/Google\\Chrome”),但没有成功。您可以编辑您的帖子,并包含您运行的确切脚本、运行它的命令以及?确保您可以将编辑的文章中的代码复制粘贴到新文件中,并运行该文件以查看相同的输出。