Python Forum
Grabbing a value from one python script into another
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Grabbing a value from one python script into another
#1
Hi,
Very new to Python and trying to figure out how I can get the value from a variable in one script into another.

I have a python script called "Accelerator" which gets a constantly changing value from a UDP packet and then prints that value to the screen

-> print("Revs = " + str(int(revsPC)))

What I want to do is grab that value in revsPC pass it to another script and display it

I have tried the import i.e import Accelerator but this I understand executes the whole Accelerator script which throws up an error. I have also tried import revsPC from Accelerator but that doesn't seem to do anything.

Am I missing something really obvious? I am very new to python so my ignorance is high!

Thanks in advance for any help.
Reply
#2
# Accelerator.py revs_pc = 999 if __name__ == '__main__': print(f"Revs = {revs_pc}")
# bar.py import Accelerator import math def foo(arg): value = math.factorial(arg) + Accelerator.revs_pc return value if __name__ == '__main__': print(foo(10))
Output:
3629799
So it's a good practice to use if __name__ == '__main__',then dos code after that do not execute when import it.
Have to call Accelerator.revs_pc to get 999.
Also look that i use f-string to avoid the not so nice way print("Revs = " + str(int(revsPC))).
Reply
#3
That's great and works a treat but the revsPC data is generated from a value inside a UDP packet where the connection is established at the start of the script and the the revsPC variable is inside a loop. I know my syntax is not great or neat but it does do the basic job of determining my revsPC value.
import sys import socket import time UDP_IP = "" UDP_PORT1 = 40002 sock1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) sock1.bind((UDP_IP, UDP_PORT1)) #definition of the function for mapping a range values to another def translate(value, inputMin, inputMax, outputMin, outputMax):	# Figure out how 'wide' each range is	inputSpan = inputMax - inputMin	outputSpan = outputMax - outputMin	# Convert the input range into a 0-1 range (float)	valueScaled = float(value - inputMin) / float(inputSpan)	# Convert the 0-1 range into a value in the output range.	return outputMin + (valueScaled * outputSpan) counter = 0 while True:	#Beginning of the program	tmps1=time.time()	data, addr = sock1.recvfrom(1024) # length of the buffer : 1024 bytes	hiValRPM = data1[0]	loValRPM = data1[1]	print("--------------------------")	print("Data Received : " + str(hiValRPM) + "/" + str(loValRPM))	print(" ")	#Revs : Mapping from 0-1023 to 0-6000	if(hiValRPM == 0):	revsPC = translate(loValRPM, 0, 255, 0, 1503)	elif(hiValRPM == 1):	revsPC = translate(loValRPM, 0, 255, 1504, 3004)	elif(hiValRPM == 2):	revsPC = translate(loValRPM, 0, 255, 3005, 4503)	elif(hiValRPM == 3):	revsPC = translate(loValRPM, 0, 255, 4504, 6000)	print("Revs = " + str(int(revsPC)))	#Calculation of the program execution time	tmps2=(time.time()-tmps1)*1000	print ("Execution time = %f ms" %tmps2)	counter += 1	print("Packet number : " + str(counter))
Reply
#4
Now you run a infinity loop(while True) with no break out of the loop.
So need a way to get value out,one way can by to rewire it so it's a generator.
# Accelerator.py import random import time def foo(): while True: time.sleep(3) revs_pc = random.randint(1,10) yield revs_pc
# bar.py import Accelerator for i in range(10): revs_pc = next(Accelerator.foo()) revs_pc += 9 # do something with revs_pc value print(revs_pc)
Output:
12 16 13 11 10 10 15 10 19 14
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Is there a *.bat DOS batch script to *.py Python Script converter? pstein 3 10,066 Jun-29-2023, 11:57 AM
Last Post: gologica
  How to kill a bash script running as root from a python script? jc_lafleur 4 9,795 Jun-26-2020, 10:50 PM
Last Post: jc_lafleur
  crontab on RHEL7 not calling python script wrapped in shell script benthomson 1 3,563 May-28-2020, 05:27 PM
Last Post: micseydel
  Grabbing comma separed values from SQLite and putting them in a list PythonNPC 8 7,445 Apr-10-2020, 02:39 PM
Last Post: buran
  Grabbing a Subset of a String acemurdoc 3 4,003 Jun-18-2019, 04:57 PM
Last Post: perfringo
  Package python script which has different libraries as a single executable or script tej7gandhi 1 3,688 May-11-2019, 08:12 PM
Last Post: keames
  Grabbing questions from a quiz app CodingUnicorn 0 2,878 Mar-05-2019, 11:26 PM
Last Post: CodingUnicorn
  Check Python version from inside script? Run Pythons script in v2 compatibility mode? pstein 2 11,329 Jul-07-2017, 08:59 AM
Last Post: snippsat
  Cant pass corect variables to python script in bash script neradp 3 8,047 Nov-05-2016, 01:26 AM
Last Post: Larz60+

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020
This forum uses Lukasz Tkacz MyBB addons.
Forum use Krzysztof "Supryk" Supryczynski addons.