1

Apple Automator を使用して、選択した一連のファイルをループ処理し、それぞれを処理して、出力を新しいファイルとして保存することはできますか?

.xls ファイルのコレクションがあり、Automator で

- Ask for Finder Items
- Open Finder Items
- Convert Format of Excel Files #save each .xls file to a .csv

ファイル名を引数として受け入れて処理し、スクリプトの実行元のディレクトリに p_filename として保存する python スクリプトを作成しました。Run Shell Scriptシェルと貼り付け/usr/bin/pythonたpythonスクリプトで使用しようとしています。

ただし、特に python のopen('filename','w')コマンドをどのように処理するのかよくわからないため、うまく翻訳できないものもあります。おそらく、新しいファイルを作成する権限がないか、コマンドを間違って入力しています。代わりに、処理されたファイルをテキストとして出力し、Automator でキャプチャしてから、新しいファイルに保存するというアイデアがありました。

そのために、 を使用しようとしNew Text Fileましたが、最初に選択したファイルごとに新しいテキスト ファイルを作成することはできません。選択したすべての Finder アイテムをループすることはできますか?

4

1 に答える 1

1

スクリプトのフォルダでこれを実行するのはなぜですか?それとも、Finderアイテムから取得しているファイルのフォルダを意味しますか?その場合は、Pythonに渡される各ファイルのパスを取得するだけです。

したがって、open('filename'、'w')を実行するときは、絶対パス名を渡す必要があります。おそらく何が起こっているのかというと、自分がいると思っている場所ではなく、実際にルートディレクトリに書き込んでいるということです。

ファイルをAutomatorのシェルコマンドに引数として渡すとすると、次のようになります。

import sys, os

args = sys.argv[1:]
for a in args:
    p = os.path.dirname(a)
    mypath = p + "/" + name
    f = open(mypath, "w") 
于 2011-03-05T02:58:57.730 に答える