python字符串定义变量名_Python中字符串的变量名

1586010002-jmsa.png

I have written some code in Python and I would like to save some of the variables into files having the name of the variable.

The following code:

variableName1 = 3.14

variableName2 = 1.09

save_variable_to_file(variableName1) # function to be defined

save_variable_to_file(variableName1)

should create 2 files, one named variableName1.txt and the other one variableName2.txt and each should contain the value of the corresponding variable at the time the function was called.

This variable name is supposed to be unique in the code.

Thanks!

HM

解决方案

It is possible to find the name of a variable, a called function can get its caller's variables using:

import sys

def save_variable_to_file(var):

names = sys._getframe(1).f_globals

names.update(sys._getframe(1).f_locals)

for key in names.keys():

if names[key] == var:

break

if key:

open(key+".txt","w").write(str(var))

else:

print(key,"not found")

thing = 42

save_variable_to_file(thing)

But it is probably a really bad idea. Note that I have converted the value to a string, how would you want dictionaries and lists to be saved? How are you going to reconstruct the variable later?

import glob

for fname in glob.iglob("*.txt"):

vname = fname.rstrip(".txt")

value = open(fname).read()

exec(vname + "=" + value)

print(locals())

Using something like exec can be a security risk, it is probably better to use something like a pickle, JSON, or YAML.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值