Apple Automator处理csv文件并创建新文件

时间:2010-12-13 06:56:12

标签: python macos automator

是否可以循环使用一组选定的文件,处理每个文件,并使用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 shell一起使用并粘贴我的python脚本。

但是,有些事情的翻译不太好,特别是因为我不确定它是如何处理python的open('filename','w')命令的。它可能没有创建新文件的权限,或者我输入的命令不正确。我有想法将处理后的文件输出为文本,使用Automator捕获它,然后将其保存到新文件中。

为此,我尝试使用New Text File,但我不能让它为开头选择的每个文件创建一个新的文本文件。是否可以遍历所有选定的Finder项目?

1 个答案:

答案 0 :(得分: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")