私はLinux(Ubuntu 11.10)マシンを使用しています。再びシェルをボーンします。
Pythonスクリプトを使用してファイルでいっぱいのディレクトリを処理する必要があります。私の同僚はPythonスクリプトを作成しましたが、以前は一度に1つのファイルで正常に使用していました。2つの引数を取ります。引用符で囲まれた処理対象のファイルへのパスと-min
、整数を必要とする呼び出される2番目の引数です。また、スクリプトは標準出力に書き込みます。
シェルスクリプトの経験とこのフォーラムで他の人をフォローした経験から、次の方法を使用してファイルのディレクトリを反復処理しました。
for f in path/to/data_directory/*; do
path/to/pythonscript.py $f -min 1 > path/to/out_directory/$f;
done
で目的のファイル名を取得しますout_directory
。それぞれの内容は、Pythonスクリプトだけが記述できるものです。つまり、上記のforループはファイルをスクリプトに正常に渡します。ただし、各ファイルの内容の性質は完全に間違っています(計算ではスクリプトが間違っていたように)。内のファイルの1つでPythonスクリプトを実行するdata_directory
と、出力ファイルの内容が正しくなります(スクリプトによって実行される計算は正しいです)。
それをより複雑にしているのは、同じシェルメソッド(for
ループ)が私の同僚が持っているMacOSXで完全に機能することです。
問題はどこにありますか?Linuxシェルについて非常に基本的な何かが欠けていますか?多分それは構文エラーですか?
どんな助けでもありがたいです。
更新:forループを再度実行しましたが、ファイルのdata_directoryを指す代わりに、data_directory内のファイルを指しました。私は同じ問題を抱えていました-Pythonスクリプトは正しい結果を計算しませんでした。