Data exchange between python script and bash script
Frank Miles
fpm at u.washington.edu
Tue Apr 4 11:24:31 EDT 2017
On Tue, 04 Apr 2017 08:01:42 -0700, venkatachalam.19 wrote:
> Hello All,
>
> I am writing a python code for processing a data obtained from a sensor. The data from sensor is obtained by executing a python script. The data obtained should be further given to another python module where the received data is used for adjusting the location of an object.
>
> For achieving this, there is a central bash script, which runs both the python modules parallel. Something like:
>
> python a.py &
> python b.py &
What is going on that two python scripts are needed? Which one generates the data needed by the bash script?
> I am trying to return the sensor data to the bash .sh file, therefore it can be provided to the other script. This, based on the online tutorials looks like:
>
> sensor_data=$(python execute_sensor_process.py) &
Presumably <sensor_data> is simply getting the exit status code from the python interpreter, not the data, right?
What are you seeing?
> and the sensor_data is assigned by printing the required data in the corresponding python script. For example, the data is printed in execute_sensor_process.py as follows:
>
> print >>sys.stderr,sens_data
>
> By printing the data onto sys.stderr and assigning a return variable in the bash, I am expecting the data to be assigned.
Assigned to what? Some return variable in bash? What??
Why not use stdout? Either pipe the data from python directly into a (possibly modified) bash script,
or into a file which gets read by the bash script.
> But this is not happening. The sensor data is a dictionary and I like to have this data for further analysis. I am not getting the data returned from the python script on to the bash variable.
Bash doesn't have dictionaries like python. Why is bash needed?
> Can someone help me to understand why the code is not working? I tried other approaches of function call such as
You haven't given us enough of the code to really answer.
> sensor_data=$`python execute_sensor_process.py` &
>
> python execute_sensor_process.py tempfile.txt &
> kinexon_data=`cat tempfile.txt` &
>
> But none of the approaches are working.
>
> Thank you,
> Venkatachalam Srinivasan
I wonder if you could completely eliminate the bash script - do it all in python.
I've written quite a few bash scripts, but not so many since I started using
python. Only exception is for low level functions on systems without a functioning
python.
More information about the Python-list
mailing list