0

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

正在读入列表(称为行)。例如,当我键入行 [3] 时,该位似乎有效,如预期的那样打印了第三个字符。

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

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

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

预先感谢。

编辑:

那些是拼写错误,应该是行,而不是列表,冒号应该在那里,并且应该缩进。修复所有这些后,我得到了相同的结果。我不能只遍历列表,这只是 for 循环的摘录,它需要以这种方式构造才能使其余部分正常工作。

如何修复以 osascript 开头的行?

顺便说一句,我通过编辑这个问题的已接受答案得到了这个: Python 中是否有用于 Mac 的 sendKey?

4

1 回答 1

2

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

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

于 2014-08-14T14:39:52.867 回答