【发布时间】:2016-01-14 14:25:19
【问题描述】:
所以我有一个 python 脚本,它从文本文件中获取文本并可以“制表”(放入类似表格的形式)该文件中的行,将最终格式化的文本写入另一个文本文件;
i=0
k=4 #determains columns of "tabular" form
f1 = open("lines-grouped.txt", 'wb')
with open("lines-to-group.txt", 'r') as multilines_filea:
multilines = multilines_filea.readlines()
for line in multilines:
line = line.strip()
if i == k-1:
i=0
f1.writelines([bytes(line + '\r\n','UTF-8')])
else:
f1.writelines([bytes(line + ' | ','UTF-8')])
i=i+1
multilines_filea.close()
f1.close()
我认为 Automator 服务可以解决一个主要限制,那就是无论我想要制表的任何文本段,都需要保存在我的“lines-to-group.txt”文件中。
理想情况下,我希望它像这样简单;
on run(input, parameters)
-- My Python Logic to manipulate "input"
return input
end run
其中 input 是任何应用程序中选定的文本。然后当我遇到以下问题(我在将表格从富文本格式复制到 Evernote 时发现);
Name
Age
Position
Salary
John Doe
21
Test Analyst
$60,000
Joe Dirt
30
Janitor
$30,000
Jane Doe
55
Executive
$150,000
我可以在当前笔记/文件中全选,然后运行Automator Service即可获取;
Name | Age | Position | Salary
John Doe | 21 | Test Analyst | $60,000
Joe Dirt | 30 | Janitor | $30,000
Jane Doe | 55 | Executive | $150,000
这是我的 python 代码现在给我的,但是我必须将我想要格式化的内容放入另一个文件中,然后运行脚本,然后从我的输出文件中复制格式化的文本,这太乏味了。
所以真正的问题是;如何让 applescript 以我的 python 脚本读取和处理其输入的方式来处理我的“输入”?
【问题讨论】:
-
我不确定我是否正确理解了你的问题,你想如何传递数据:applescript --> python script, python script --> applescript or applescript --> python script - -> 苹果脚本?
-
理想情况下,我希望它像输入是从任何应用程序中选择的文本一样简单。然后选定的文本被发送到服务(Automator/Applescript),新的 Automator/Applescript 友好逻辑,曾经是我的 python 逻辑(我知道它以自己的方式工作),操作并返回选定的文本。
-
好的,所以你想让applescript基本上和python脚本做同样的事情?
-
@turingtested,是的......所以假设applescript中的 input 相当于我的python multilines 列表我得到“with iline在 input" 中替换我的主要 python for 循环,我想,但是我不知道如何在 applescript 中构造一个 output 我可以返回类似于我的 python 脚本中的“lines-grouped.txt”。
标签: python applescript