繁体   English   中英

将变量从python传递到applescript

[英]Passing variable from python to applescript

我正在尝试使python脚本将文本文件中的字符作为击键传递给OSX。 文本文件的格式设置为一列字符:

正在将其读入列表(称为行)。 例如,当我键入lines [3]时,按预期方式打印了第三个字符,此位似乎起作用。

我现在正尝试使用applescript使用以下命令将此字符作为按键传递给OSX:

import os 
for f in xrange ( VALUE ):
osascript -e 'tell application "System Events" to keystroke linesf]'

对于list [f]部分似乎并不满意(语法错误,克拉位于最后的撇号下方)。 我怀疑这是因为由于某种原因,变量f无法用于该命令,但我不确定。 有人可以提供建议吗? 我知道for循环中的位需要缩进,但是出于某种原因,这种对话不会让我缩进。 在我正在测试的脚本中这是正确的。

预先感谢。

编辑:

这些是错别字,应该是行而不是列表,冒号应该在其中,并且应该缩进。 解决所有这些问题后,我得到了相同的结果。 我不能只遍历列表,这只是for循环的摘录,需要以这种方式构造其余部分才能工作。

我该如何修复开始的脚本行?

顺便说一下,我是通过编辑该问题的可接受答案来解决这个问题的: Python中是否有Mac的sendKey?

令人不高兴的是,您尝试在Python程序中使用命令行指令osascript -e 'tell application "System Events" to keystroke list[f]'看到osascript -e 'tell application "System Events" to keystroke list[f]'并认为您想从osascript减去e ,但不知道该如何处理字符串'tell application "System Events" to keystroke list[f]'

您在这里做错了很多事情。 首先,您发布的代码不一定是您真正拥有的代码,因为您在for循环中缺少了冒号(它应该对此有所抱怨),并且没有缩进您的代码中for循环。 其次,您已经导入了os ,我假设您要使用os.system作为您的命令行指令。 第三,您不应该调用列表list ,因为名称list已经在实际的列表类中使用(这很有用,因为例如,它可以让您执行list('foobar')创建列表['f', 'o', 'o', 'b', 'a', 'r'] )。 第四,如果要遍历列表中的每个项目,请实际执行此操作 第五,如果您编写了一个类似"keystroke x[y]"的字符串,则变量xy (假设它们存在)是不相关的:您已要求该字符串包含实际的字母'x''y' (和一些方括号)。 您实际上需要构建一个包含列表中适当字符的字符串。

暂无
暂无

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

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