Python osascript使用额外的引号

时间:2016-01-02 22:26:03

标签: python osascript

尝试使用以下代码(在applescript中可以正常工作)在Python中工作,这对Python来说还是新手,所以我不知道如何让这个字符串正常工作。

def getChromeSource():
    cmdGetSource = """
    osascript -e 'tell application "Google Chrome" to set source to execute front window's active tab javascript "document.documentElement.outerHTML"'
    """
    proc = subprocess.Popen([cmdGetSource], stdout=subprocess.PIPE, shell=True)
    (source, err) = proc.communicate()

我确信问题出在

window's

我试过了:

window\s

但是这不起作用我想我只是有太多的引号而且我不确定如何正确地写字符串,可能是一个非常简单的字符串,所以希望有人可以引导我朝着正确的方向前进。

1 个答案:

答案 0 :(得分:0)

您应该传递要执行的参数列表,而不是创建一个包含所有参数的字符串。你也不应该使用shell=true标志。

cmd_args = ['osascript', '-e', 'tell application "Google Chrome" to set source to execute front window\'s active tab javascript "document.documentElement.outerHTML"']
proc = subprocess.Popen(cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
source, err = proc.communicate()