我试图让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开头的行?在
我是通过编辑这个问题的答案得到的,顺便说一句: Is there a sendKey for Mac in Python?
它不高兴的是,您试图在Python程序中使用命令行指令—Python看到},但却不知道如何处理字符串
osascript -e 'tell application "System Events" to keystroke list[f]'
,认为您想从osascript
中减去{'tell application "System Events" to keystroke list[f]'
。在你做错了很多事情。首先,您发布的代码不可能是您实际拥有的代码,因为您在}(假设它们存在)是不相关的:您要求字符串包含实际的字母}(以及一些方括号)。您需要实际构建一个包含列表中适当字符的字符串。在
for
循环中丢失了冒号(它应该会抱怨这个问题),并且没有缩进进入for
循环中的代码。其次,您导入了os
,我假设您希望使用os.system
作为命令行指令。第三,您不应该调用列表list
,因为名称list
已经用于实际的list类(这是一个有用的东西,因为,例如,它允许您执行类似list('foobar')
的操作来创建列表['f', 'o', 'o', 'b', 'a', 'r']
)。第四,如果你想循环列表中的每一项,actually do that。第五,如果您编写一个类似"keystroke x[y]"
的字符串,那么变量x
和{'x'
和{相关问题 更多 >
编程相关推荐