Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Best way to retrieve variable values from a text file?

Referring on this question, I have a similar -but not the same- problem..

On my way, I'll have some text file, structured like:

var_a: 'home' var_b: 'car' var_c: 15.5 

And I need that python read the file and then create a variable named var_a with value 'home', and so on.

Example:

#python stuff over here getVarFromFile(filename) #this is the function that im looking for print var_b #output: car, as string print var_c #output 15.5, as number. 

Is this possible, I mean, even keep the var type?

Notice that I have the full freedom to the text file structure, I can use the format I like if the one I proposed isn't the best.

EDIT: the ConfigParser can be a solution, but I don't like it so much, because in my script I'll have then to refer to the variables in the file with

config.get("set", "var_name") 

But what I'll love is to refer to the variable directly, as I declared it in the python script...

There is a way to import the file as a python dictionary?

Oh, last thing, keep in mind that I don't know exactly how many variables would I have in the text file.

Edit 2: I'm very interested at stephan's JSON solution, because in that way the text file could be read simply with others languages (PHP, then via AJAX JavaScript, for example), but I fail in something while acting that solution:

#for the example, i dont load the file but create a var with the supposed file content file_content = "'var_a': 4, 'var_b': 'a string'" mydict = dict(file_content) #Error: ValueError: dictionary update sequence element #0 has length 1; 2 is required file_content_2 = "{'var_a': 4, 'var_b': 'a string'}" mydict_2 = dict(json.dump(file_content_2, True)) #Error: #Traceback (most recent call last): #File "<pyshell#5>", line 1, in <module> #mydict_2 = dict(json.dump(file_content_2, True)) #File "C:\Python26\lib\json\__init__.py", line 181, in dump #fp.write(chunk) #AttributeError: 'bool' object has no attribute 'write' 

In what kind of issues can I fall with the JSON format? And, how can I read a JSON array in a text file, and transform it in a python dict?

P.S: I don't like the solution using .py files; I'll prefer .txt, .inc, .whatever is not restrictive to one language.

like image 983
Strae Avatar asked May 29 '09 06:05

Strae


People also ask

How do you read a variable from a text file in Python?

To read a text file in Python, you follow these steps: First, open a text file for reading by using the open() function. Second, read text from the text file using the file read() , readline() , or readlines() method of the file object. Third, close the file using the file close() method.


1 Answers

But what i'll love is to refer to the variable direclty, as i declared it in the python script..

Assuming you're happy to change your syntax slightly, just use python and import the "config" module.

# myconfig.py:  var_a = 'home' var_b = 'car' var_c = 15.5 

Then do

from myconfig import * 

And you can reference them by name in your current context.

like image 94
hbn Avatar answered Sep 23 '22 15:09

hbn