苹果Automator处理csv文件并创建新文件
可以用Apple Automator来循环处理一组选中的文件吗?每个文件处理完后再保存成新的文件?
我有一堆.xls格式的文件,我已经让Automator完成了
- Ask for Finder Items
- Open Finder Items
- Convert Format of Excel Files #save each .xls file to a .csv
我写了一个Python脚本,这个脚本可以接收一个文件名作为参数,处理这个文件,然后把处理后的结果保存为p_filename,保存在运行这个脚本的目录下。我想用Run Shell Script
这个功能,调用/usr/bin/python
的命令,并把我的Python脚本粘贴进去。
不过,有些东西不太好用,尤其是我不太确定它是怎么处理Python的open('filename','w')
命令的。可能它没有权限去创建新文件,或者我输入的命令不对。我想到了一个办法,就是把处理后的文件输出为文本,先用Automator捕捉到这个文本,然后再保存成新文件。
为此,我尝试使用New Text File
,但是我无法让它为每一个最开始选中的文件创建一个新的文本文件。请问可以循环处理所有选中的Finder项目吗?
1 个回答
1
你为什么想在脚本所在的文件夹里完成这个操作?还是说你是指从Finder中获取的文件所在的文件夹?如果是这样的话,你只需要获取每个传入Python的文件的路径就可以了。
当你运行open('filename','w')时,应该传入一个完整的文件路径。可能发生的情况是,你实际上是在根目录下写入,而不是你想象中的那个地方。
假设你是把文件作为参数传递给Automator中的shell命令,那么你可能会有以下内容:
import sys, os
args = sys.argv[1:]
for a in args:
p = os.path.dirname(a)
mypath = p + "/" + name
f = open(mypath, "w")