Python变量值转变量

今天用python读取一个有很多字段的配置文件,配置文件中的格式类似:

pidStart:2600
startFid:47
startTid:450
startFirst:1
message:‘‘

一般会想到的是:

config = open(configPath, ‘r‘)
for item in config:
    //set value one by one

然后就想了,这么多的字段怎么一个个的设置多累了,就想python可以将字符串key直接作为变量多好了,就找到了:vars()

>>>str = "abc"
>>>vars()[str] = "TEST"
>>>print(abc)
TEST

那这个比较繁琐的问题解决了,剩下的就是取":"的位置,然后截取字符串了,很自然的用到切片运算:

idx = item.index(‘:‘)
s = item[:idx]
vars()[s] = item[(idx+1):].strip(‘\n‘)

完整的code:

try:
    config = open("testConfig.ini", ‘r‘)
    for item in config:
        idx = item.index(‘:‘)
        fname = item[:idx]
        vars()[fname] = item[(idx + 1):].strip(‘\n‘)
  config.close()
except FileExistsError:
  //do something
except FileNotFoundError:
  //do something
except:
  print(‘Open config file error:‘+ sys.exc_info()[0])
finally:
  //do something
时间: 2024-12-29 06:58:55

Python变量值转变量的相关文章

JavaScript高级程序设计(复制变量值、传递参数)

复制变量值 一个变量向另一个变量复制基本类型值和引用类型值时,是存在不同的. 一个变量向另一个变量复制基本类型的值,会在变量的对象上创建一个新值,然后把该值复制到为新变量分配的位置上. var num1 = 7; var num2 = num1; 用图来看如下: 两个值不会相互影响 一个变量向另一个变量赋值引用类型的值,实际上是复制指向这个地址的指针. var obj1 = new Object(); var obj2 = obj1; obj1.name = "jack"; alert

如何不利用一个额外的变量来达到交换两个变量值的目的-------位上的异或运算

问题:一般我们要交换两个变量的值,多会采取一个额外变量来实现,比如temp=a,a=b,b=temp,现在我们能不利用temp来实现交换a,b两个变量值的目的吗? 解决方案:^异或运算符,而且我们会发现a^a=0,还有0^a=a,依据这两条理论,我们可以实现之前提出的问题. 代码如下: #include<stdio.h>void inplace_swap(int * x,int * y){    *y=*x^*y;    *x=*x^*y;    *y=*y^*x;}int main(){  

微信小程序----关于变量对象data 和 前端wxml取后台js变量值

(一)页面变量对象data 对象data 有两个方面用途 第一,前端wxml的数据渲染是通过设置此对象中定义的变量进行关联展现的 第二,定义JS页面中的页面局部变量,使其整个页面中可使用或调用 对象data定义的变量支持各种数据类型,string,int,[],{} 第一.wxml数据渲染,只要通过设置data值(this.setData({...}))即可 如: wxml页面:detail对象中包含有TaskBillCode与BillDate两个属性 js页面: 第二.页面变量 定义: 存储:

&lt;22&gt;【掌握】指针变量概念及定义方法+【理解】两变量值交换的方法+【掌握】总结*使用场合

[掌握]指针变量概念及定义方法 1.指针变量 用来存放地址的变量,就是指针变量 2.指针? 就是地址,地址是个常量 3.指针变量的定义 数据类型 *指针变量名; int *p; //定义了一个指针变量,变量名是p //int表示,p只能存放一个int类型的变量的地址 char *p1; //定义了一个指针变量,变量名是p1 //p1只能存放一个char类型数变量的地址 int num=10; char *p = &num; //警告 4.指针变量定义的注意事项 1)“*” 必须得有,如果没有就相

不使用临时变量 交换两个变量值

不使用临时变量 交换两个变量值1.$a = $a+$b;$b = $a-$b;$a= $a-$b; 2.list($a, $b) = array($b, $a); 3. $a = $a ^ $b;$b = $a ^ $b;$a = $a ^ $b;

python 学习7 交换变量值

在其他语言中,交换两个变量值的时候,可以这样写: temp = a a = b b = temp 在Python中,我们可以简单的这样写: a,b=b,a 实验如下: >>> a=10 >>> b=5 >>> print(a,b) 10 5 >>> a,b=b,a >>> print(a,b) 5 10 >>>

JDK环境变量中dt.jar、tools.jar等变量值的作用

JAVA_HOME [plain] view plain copy 变量名:JAVA_HOME 变量值:E:\java\jdk7 用途:定义一个变量,供其他地方使用 PATH [plain] view plain copy 变量名:Path 变量值:%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 用途:让系统在任何路径下都可以识别java.javac.javap等命令 CLASSPATH [plain] view plain copy 变量名:CLASSPATH 变量值

不借助第三个变量,交换两个变量值的3种方式

今天在我们学校的OJ上做题,一道非常简单的题,突然想试试能不能不借助第三个变量,交换两个变量值.蒙出来一半了已经,好可惜.现在把方法写在这里,希望以后不要忘记. 1 void fun1() 2 { 3 int a = 10, b = 100; 4 5 a = a + b; 6 b = a - b: 7 a = a - b; 8 printf("%d\n%d\n", a, b); 9 } 10 11 void fun2() 12 { 13 int a = 10, b = 100; 14

变量的命名,变量值的特征及数据类型

1变量补充 变量名的命名应该能够反映出变量值所记录的状态 集体的变量名的命名规范如下: 1.变量名是由字母.数字.下划线组成 2.不能以数字开头 3.不能使用关键字命名变量名['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is