[英]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]"
的字符串,则变量x
和y
(假设它们存在)是不相关的:您已要求该字符串包含实际的字母'x'
和'y'
(和一些方括号)。 您实际上需要构建一个包含列表中适当字符的字符串。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.