如何创建一个包含字符串形式的变量名及其值的文本文件



我想创建一个文件,该文件接受给定的变量列表,输出应该如下所示:

test.txt
a1 = 3
a2 = 3
a3 = 4
a4 = 6
a5 = 'test'
a6 = 19
a7 = 19

我试过这种方法:

def namestr(obj, namespace):
names = [name for name in namespace if namespace[name] is obj]
name = [n for n in names if 'a' in n]
return name[0]
with open("setupfile.txt", "w") as setupfile:
x = [a1, a2, a3, a4, a5, a6, a7]
for name in x:
print(name)
setupfile.write(namestr(name, globals()) + "=" + repr(name) +"n")
print(repr(name))
setupfile.close()

但这并不是一个充分的解决方案。具有相同值的变量在文本文件中具有相同的名称。

是否有更好的解决方案来创建所描述的文本文件?也许是获取变量名称的更好方法。

我也遇到过同样的问题。如果对你有用的话,你可能应该试试这种方法。

class NewClass(object): pass
names = NewClass()
vars = ['a1', 'a2', 'a3','a4','a5','a6','a7']
for v in vars: 
setattr(names, v, eval(v)) 

with open("setupfile.txt","w") as setupfile:
members = [attr for attr in dir(names) if not callable(getattr(names, attr)) and not attr.startswith("__")]
for i in range(0,len(members)):
#print(name)
setupfile.write(members[i] + '=' + str(getattr(names, members[i])) + "n")
#print(repr(name))
setupfile.close()`

最新更新