2016-04-10 8 views
0

私はRaspberry Piで画像を生成する.shファイルを持っています。このファイル内に、私は次のようしている:.shからPythonに変数値を取得

Config.sh:

#!/bin/bash 
suffix=$(date +%H%M%S) 
cd /home/pi/photobooth_images/ 
sudo cp image1.jpg /usb/photobooth_images/image-${suffix}-1.jpg 
sudo convert -size 1800x1200 xc:white \ 
     image1.jpg -geometry 1536x1152+240+24 -composite \ 
    /home/pi/template/logo.png -geometry 192x1152+24+24 -composite \ 
     PB_${suffix}.jpg 
sudo cp PB_${suffix}.jpg /usb/photobooth_montage/PB_${suffix}.jpg 
sudo rm /home/pi/photobooth_images/* 
returnvalue=PB_${suffix}.jpg 
echo "$returnvalue" 

私がここでやろうとしています何それは、Pythonに生成さPB_${suffix}.jpg「戻り値」の値(ファイル名)を取得することです。今度は私のPythonプログラムにこの行があり、上記の.shファイルを実行します。

Main.py:

return_value = subprocess.call("sudo ./" + config.sh, shell=True) 
print "The Value is: " + str(return_value) + " This value from Python" 

The output I get is this 
[08:33:02 04-10-2016] [PHOTO] Assembling pictures according to 1a template. 
PB_083302.jpg 
The Value is: 0 This value from Python 
The output I am expected should be something like "PB_070638.jpg" 

すべてのヘルプは大歓迎です。

+0

このような簡単な操作には、 'sudo'を使用しないでください。 sudoは管理コマンドを実行するために予約されています。 – miraculixx

答えて

0

subprocess.callは、スクリプト(documentation)を実行するリターンコードのみを返すためです。あなたのスクリプトが返すものの実際の出力をしたいので、あなたはあなたにもsudo経由でroot権限なしでスクリプトを実行する修正する場合がありますcheck_outputを使用して、そしてshell=True

subprocess.check_output(["sudo", "./", config.sh]) 

使用を避けるべきです。 は、はroot特権を使って実行する必要があります。

+1

subprocess.check_outputが問題を解決しました。ありがとうございます。 –

関連する問題