Looking for a way to identify and replace Python v

2019-08-19 04:11发布

问题:

I have a dictionary of variablenames and I want those to be the variablenames in another script. So I probably need to identify all variables in a Python script and then somehow replace those with the desired ones from the dictionary. Yet I cannot figure out what might be the most elegant way to do that. Do I have to paste the one script as a string to the other script that does the replacement? Any tips? Thanks Edit: The actual question is not to request a complete solution rather than asking whether there is a possibility to identify which word in a script is actually a variable. Is it possible to find these eg compare them to PythonBuiltIn variables?!

回答1:

Python can read python. So write a script with that dictionary that looks at your first script and uses regex to replace the correct symbols. Make the file you want to modify an in file and read it, edit it, and write it back to the .py file line by line.

heres doc on file I/O in python just in case you need it:

http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-files



回答2:

To assign global variables using a dictionary from another module:

from other_module import desired_dictionary

if __name__=="__main__":
   import this_module

   for name, value in desired_dictionary.items():
       setattr(this_module, name, value)


回答3:

I now chose to simply identify variables as the last word coming before a "=" character in a script. (Does that make sense?) I use

line.split("=")[0].split(" ")[-1]

to identify those words after opening the script as proposed by NKamrath with

f = open('replaceme.py')
f.readlines()

Thanks a lot for the help so far!