繁体   English   中英

如何使用 Python 执行的 AppleScript 打印到终端?

[英]How do I print to terminal with an AppleScript executed with Python?

我有一个执行苹果脚本的 Python 脚本。 我想从苹果脚本中打印到终端。

这是我的 Python 代码。

import applescript

myfunction = """

do shell script "echo " & "words to terminal"

"""

def runfunction():
    applescript.tell.app("Terminal", myfunction, background = False)

然后我用python -c 'import myapplescript; print myapplescript.runfunction()' python -c 'import myapplescript; print myapplescript.runfunction()'

我尝试使用“do shell 脚本”短语从苹果脚本中打印到终端,并copy "Hello World!" to stdout copy "Hello World!" to stdout

import applescript

那不是一个很好的图书馆。 如果您的需求很简单,我会直接使用 subprocess 。

另请注意, osascript在其自身的 IO 支持方面受到限制。 没有访问标准输入的内置方法,写入标准输出的唯一数据是脚本末尾返回的最后一个值(如果有)。 (您可以随时使用log命令写入 stderr,尽管这会有自己的一系列问题。)

如果您想直接在 AppleScript 代码中访问标准输入/标准输出,则必须使用 Cocoa 的NSFileHandle class。 几年前我写了一个文件,它提供了易于使用的包装器,尽管我不维护或支持它。

如果你的需求更高级——例如你想调用一个或多个 AppleScript 处理程序或传递比简单(短)字符串更复杂的东西——并且你安装了 PyObjC,你最好使用[这个库]( https:// pypi.org/project/py-applescript/ )或 AppleScript-ObjC

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM