On Tuesday, April 4, 2017 at 5:27:42 PM UTC+2, cassiope wrote:
> 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?

One python script communicates with an external sensor and receives data.
Another script controls a robot. That is based on ROS modules.
>From the given code, a.py will be the script generating the data. Both the 
>modules are independent of each other and so I have written both of them in 
>different python scripts.

> 
> > 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?
>  I am not getting the exit status (I am not setting or printing return status 
> in the python script). I need both the scripts running in parallel. Meaning 
> the sensor will be continuously monitoring the location of the robot and this 
> data will be used in another python script which controls the robot motion.

For now, I am printing the output in the script and as far I understood, this 
can be assigned to a variable in the bash file from where this file is 
executed. 

I am not getting any output in the assigned variable in bash.

> > 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.
>  

Yes. As shown in "sensor_data=$(python execute_sensor_process.py) &", the 
variable sensor_data is assigned to hold the return value from the python 
script.
I was using the stdout. But in some forums for similar problems, it is 
suggested to print the data to stderr (I really dont know what is the 
significance). 
I am unaware of piping the data from python. I will look into this.

 
> > 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?
>  

Bash is needed to run the different scripts. I tried using multiprocess and 
thread from python, but really they are not performing parallel processing, 
when there are completely two different process. I understood it by executing 
the multiprocess/thread. Sequential operation was happening, which lead to the 
situation that only one python process is always executed.

> > 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.

-- 
https://mail.python.org/mailman/listinfo/python-list

Reply via email to