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!