我從automator中調用了一個shell腳本中的python腳本(mac os x 10.6.8中的版本2.1.1)時發現了一個解決方法(python 2.6.1 )。我的問題是,os.system(「mkdir foo」)在subprocess.call(「mkdir foo」)也使目錄(但非常具體)的情況下工作,但隨後使automator發生錯誤。python in applescript:subprocess.call vs os.system in automator
我的automator應用程序的目的是接受拖放到它上面的圖像。 的自動機的應用程序只有一個動作:「運行shell腳本」用下面的代碼:
for f in "[email protected]"
do
python dphoto_pythons/uploader.py $f > dphoto_pythons/auto_output.txt
done
$ f是拖動圖像的名稱。 (「運行shell腳本」設置爲通過輸入作爲參數。) 這裏是陌生的一部分:
在「uploader.py」腳本,我打電話這樣的:
retcode=call("mkdir " + dir_full, shell=True) # THIS CAUSES A ERROR IN AUTOMATOR
print "***DOESN'T GET HERE WHEN RUN IN AUTOMATOR****"
它使目錄。但沒有得到下一個陳述。和automator會拋出一個錯誤對話框(它只是說我應該去檢查我的腳本)。
相反,如果我叫從終端uploader.py '手動':
"python uploader.py someimage.jpg"
它的工作順利。 令人費解了本作一點後,我試圖使用os.system更換電話:
os.system("mkdir " + stu_dir_full)
####retcode=call("mkdir " + stu_dir_full, shell=True) # BUG
這從自動機和終端工作。 我有一種感覺,我看起來很明顯,因爲這是一個奇怪的問題。但是我認爲無論如何我都會把它放在那裏。有什麼想法嗎?
-Mel
使用/ Applications/Utilites中的Console.app來檢查你的系統日誌;很可能有相關的錯誤消息。但爲什麼讓它如此複雜?使用內置的Python庫函數「os.mkdir()」http://docs.python.org/library/os.html#os.mkdir –
爲什麼在這個世界上,你只是爲了創建一個目錄而掏空? – kindall