1

So I am trying to get a ton of variables from a file in a different directory WITHOUT just copying and pasting, as thats just cheap, and makes one need to edit ALL the files that use that set of variables.

D:/Tiller OS/garden/memId.py:

mem11 = "D:/Tiller OS/memory/mem1/mem1-1.mem"
mem12 = "D:/Tiller OS/memory/mem1/mem1-2.mem"
mem13 = "D:/Tiller OS/memory/mem1/mem1-3.mem"
mem21 = "D:/Tiller OS/memory/mem2/mem2-1.mem"
mem22 = "D:/Tiller OS/memory/mem2/mem2-2.mem"
mem23 = "D:/Tiller OS/memory/mem2/mem2-3.mem"
mem31 = "D:/Tiller OS/memory/mem3/mem3-1.mem"
mem32 = "D:/Tiller OS/memory/mem3/mem3-2.mem"
mem33 = "D:/Tiller OS/memory/mem3/mem3-3.mem"
memro1 = "D:/Tiller OS/memory/romem/memro-1.mem"
memro2 = "D:/Tiller OS/memory/romem/memro-2.mem"
memro3 = "D:/Tiller OS/memory/romem/memro-3.mem"

How do I get all this info into a file at D:/Tiller OS/programs/prog.py?

3
  • 3
    Possible duplicate of Importing variables from another file? Commented Mar 2, 2019 at 2:34
  • Wouldn't that be better handled by some sort of config file? Commented Mar 2, 2019 at 2:47
  • @melpomene How would I do that? Commented Mar 2, 2019 at 2:53

1 Answer 1

2

If D:/Tiller OS/garden/ is on your path, you can just do from memId import mem11, etc. It doesn't matter whether something is a function, class, or other object when importing in Python.

However, if all that memId.py contains is a list of these variables, I agree with @melpomene that you it might be better to use a different format to store these. You could use, for example, a TOML file. The format you have above is already valid TOML, so you'd just rename it to memId.toml and then in prog.py you could do something like

import toml
mem_path = "D:/Tiller OS/garden/memId.toml"
mems = toml.load(mem_path)

mems would then be a dictionary and you could access mem11 as mems["mem11"] and similarly for the others. toml is not in the standard library, so you would need to pip install toml if you don't have it. You could just use a JSON file instead if you don't want that; json is in the standard library. However, I think TOML is nicer than JSON, and JSON would require changing the format of your file.

Sign up to request clarification or add additional context in comments.

1 Comment

I accidentally posted my answer before it was complete - see the last paragraph above. You need to pip install toml.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.