从AppleScript到Python的语法错误:意外的标记`<`

0 投票
2 回答
768 浏览
提问于 2025-04-16 21:19

我正在使用以下命令从AppleScript向Python传递一个字符串。

字符串mytext包含一封电子邮件的HTML内容,开头是<...

AppleScript

display dialog (do shell script "/Users/mymac/Documents/'Microsoft User Data'/'Outlook Script Menu Items'/ test.py" & mytext)

Python

#!/usr/bin/env python

import sys
import string

def main():
    print sys.argv[1:]

if __name__ == "__main__":
    main()

我该如何解决这个错误呢?

2 个回答

0

问题在于你正在执行一个 shell 脚本... 这个脚本是通过拼接一长串文本来构建的。
比如说:"/Users/mymac/Documents/'Microsoft User Data'/'Outlook Script Menu Items'/ test.py" & " ... ")

但是,“<”和“>”这两个符号在 shell 中有特殊的含义。

2

你不想把HTML作为参数传给Python脚本。相反,可以这样做:

display dialog (do shell script "/Users/mymac/Documents/'Microsoft User Data'/'Outlook Script Menu Items'/ test.py < webpage.html")

print sys.stdin.read()

撰写回答