从csv文件Python访问变量

时间:2015-08-20 14:27:15

标签: python csv

我有一个python文件,它与设备通信并访问其参数。由于我必须访问100多个参数,因此我将这些参数名称存储在csv文件的一列中。我想访问分配给这些参数的值。但是我得到的是参数名称而不是它的值。

我的csv文件就像

parameter1
parameter2
parameter3
parameter4
...

我使用以下代码:

import csv
TagList = []

with open('parameters.csv', 'rb') as file:
    reader = csv.reader(file)
    for row in reader:
        TagList.append(row[0])

for tag in TagList:
    print tag

输出:

parameter1
parameter2
parameter3
parameter4
...

我想要访问的是分配给这些参数的数据。我可以通过它的名字访问它的值。即。

print parameter1
output: 1.0

我尝试了print "%d" %(tag),但也无效。 请帮助我。提前谢谢。

1 个答案:

答案 0 :(得分:0)

我不确定控制器的接口是什么样的,但我认为你会在这里使用反射。

所以TagList[0]听起来好像等于"parameter1"

如果您通过python类访问控制器,则需要执行getattr(controller, TagList[0]之类的操作。

以下是一个代码示例,说明了它的工作方式:

class foo(object):
    x = 3

var = "x"
print getattr(foo(), var)

编辑:

好的,你说的话听起来更像是这样:

variable1 = 0
variable2 = "true"

paramList = ["variable1", "variable2"]
for param in paramList:
    print eval(param)

eval()的文档字符串是:在全局变量和局部变量的上下文中评估源。因此,如果它们不属于某个实例,则应该选择这些变量。

另请参阅使用globals()['a']获得答案的How to get the value of a variable given its name in a string?来缩小评估范围。