How do I read variables from another python file? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: General Coding Help (https://python-forum.io/forum-8.html) +--- Thread: How do I read variables from another python file? (/thread-12343.html) |
How do I read variables from another python file? - ahmed_mokhles - Aug-21-2018 Hello! I am new to this forum so I hope I am posting in the right place. I have a python program that creates another python file and declares 4 variables in it. How can I read the variables from the other file? Here is the first file "CodeTest.py": import random testFile = open("testFile.py", "w+") testString = "abcd" for i in range(len(testString)): testRandom = random.randint(2048, 4096) testFile.write(str(testString[i] + " = " + str(testRandom) + "\n")) print("Variables declared in file testFile.py")and this is the file created "testFile.py": a = 2316 b = 2498 c = 3607 d = 3290But now what do I add to CodeTest.py to be able to read the values in testFile.py? Thanks RE: How do I read variables from another python file? - Gribouillis - Aug-21-2018 You can do namespace = {} with open("testFile.py") as ifh: contents = ifh.read() exec(contents, namespace) print(namespace['a'], namespace['b']) RE: How do I read variables from another python file? - ichabod801 - Aug-21-2018 It would be better to put those values in a dictionary. Also, you are iterating over the indexes of a string. It is better to iterate over the string itself: import random testString = "abcd" data = {} for char in testString: data[char] = random.randint(2048, 4096)You can now access the random numbers with data['a'], data['b'], and so on. RE: How do I read variables from another python file? - ahmed_mokhles - Aug-21-2018 Thanks! #ichabod801 RE: How do I read variables from another python file? - snippsat - Aug-21-2018 Also a tip if you want to save dictionary from @ichabod801 code. You can use JSON. import random import json testString = "abcd" data = {} for char in testString: data[char] = random.randint(2048, 4096) with open("test_file.json", "w") as j_out: json.dump(data, j_out)Now can read that JSON file from a other file. import json with open("test_file.json") as j: data = json.load(j)Test: >>> data {'a': 3183, 'b': 2707, 'c': 2581, 'd': 2144} >>> data.get('c', 'Not in record') 2581 >>> data.get('d', 'Not in record') 2144 >>> data.get('e', 'Not in record') 'Not in record' RE: How do I read variables from another python file? - snippsat - Aug-21-2018 Can also look at configparser. Then have on disk a .ini file. [DATA] a = 3183 b = 2707 c = 2581 d = 2144Make: import configparser testString = "abcd" data = {} for char in testString: data[char] = random.randint(2048, 4096) config = configparser.ConfigParser() config['DATA'] = data with open('example.ini', 'w') as configfile: config.write(configfile)Read: import configparser config = configparser.ConfigParser() config.sections() config.read('example.ini')Test: >>> config['DATA']['c'] '2581' >>> config['DATA']['d'] '2144' >>> config['DATA'].get('e', 'Not in record') 'Not in record' RE: How do I read variables from another python file? - ahmed_mokhles - Aug-21-2018 Thanks @snippsat |