Bottom Page

Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
 How do I read variables from another python file?
#1
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 = 3290
But now what do I add to CodeTest.py to be able to read the values in testFile.py?

Thanks
Quote
#2
You can do
namespace = {}
with open("testFile.py") as ifh:
    contents = ifh.read()
exec(contents, namespace)
print(namespace['a'], namespace['b'])
Quote
#3
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.
Craig "Ichabod" O'Brien - xenomind.com
I wish you happiness.
Recommended Tutorials: BBCode, functions, classes, text adventures

Quote
#4
Thanks!
#ichabod801
Quote
#5
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'
Quote
#6
Can also look at configparser.
Then have on disk a .ini file.
[DATA]
a = 3183
b = 2707
c = 2581
d = 2144
Make:
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'
Quote
#7
Thanks @snippsat
Quote

Top Page

Possibly Related Threads...
Thread Author Replies Views Last Post
  Read and save file in chucksize zinho 3 113 Apr-02-2020, 08:12 AM
Last Post: DeaD_EyE
  Recommended way to read/create PDF file? Winfried 1 137 Mar-17-2020, 03:17 PM
Last Post: Larz60+
  how to read json file jk91 34 1,230 Feb-26-2020, 08:10 AM
Last Post: jk91
  Read Yaml configuration file in Python binhduonggttn 1 183 Feb-11-2020, 05:43 AM
Last Post: ndc85430
  Simple Read File Issue blackjesus24 4 209 Feb-09-2020, 12:07 AM
Last Post: blackjesus24
  Read csv file data parthi1705 0 147 Jan-29-2020, 01:42 PM
Last Post: parthi1705
  Importing variables from another file IILawrenceII 7 767 Jan-18-2020, 12:31 PM
Last Post: IILawrenceII
  search and read file given partial file SriRajesh 2 165 Jan-07-2020, 04:56 PM
Last Post: snippsat
  txt-file: read and append missing data sufi 1 252 Dec-07-2019, 08:12 AM
Last Post: Gribouillis
  Read csv file, parse data, and store in a dictionary markellefultz20 4 545 Nov-26-2019, 03:33 PM
Last Post: DeaD_EyE

Forum Jump:


Users browsing this thread: 1 Guest(s)