搜索一个变量,并获得了与蟒蛇

问题描述:

价值我想有一些变量存储在一个文件(文本文件或YAML文件)搜索一个变量,并获得了与蟒蛇

例如,如果我已经在文件中存储这些变量

employee = ['Tom', 'Bob','Anny'] 
salary = 200 
managers = ['Saly','Alice'] 

,我希望用户,如果用户输入员工输入列表名称或例如

变量的名称和想要做的就行了值的一些操作,使本来用户访问employee[0]employee[1] ....等

我怎么能写一个Python脚本,会去正确的变量文件搜索,并给予其值的用户访问

感谢

+0

遐我试图存储在一个文本文件中的变量,然后读取他们,但问题是,它会读取整条生产线并视其为例如 它给出了一个字符串我 员工= ['汤姆','鲍勃','安妮'] 整个行,然后其他行我怎么能告诉python,这是一个变量不是字符串 – Lily 2012-07-08 12:36:36

这种方法可能是一个假设你的文件的内容的方式是有些一致:

更新时间:我添加的代码需要解析名单以前没有提供。

代码获取文件中的所有数据,并将其作为适当的类型(即浮点和列表)分配给变量。列表解析不是特别漂亮,但它是功能性的。

import re 
with open('data.txt') as inf: 
    salary = 0 
    for line in inf: 
     line = line.split('=') 
     line[0] = line[0].strip() 
     if line[0] == 'employee': 
      employee = re.sub(r'[]\[\' ]','', line[1].strip()).split(',') 
     elif line[0] == 'salary': 
      salary = float(line[1]) 
     elif line[0] == 'managers': 
      managers = re.sub(r'[]\[\' ]','', line[1].strip()).split(',') 

print employee 
print salary 
print managers 

产量:

['Tom', 'Bob', 'Anny'] 
200.0 
['Saly', 'Alice'] 
+0

@ the.lily我更新了我的答案,添加上面的必要代码来将列表解析为变量。我相信这是做你想做的,看看并让我知道。 – Levon 2012-07-08 21:12:19

+0

,实际上帮助 非常感谢 – Lily 2012-07-09 07:35:52

像什么@Levon说,有几种方法,允许你这样做,而最好的取决于你的问题环境。例如,你可以

  1. 自己读取文件通过格式化例如,通过分隔符“=”,在你的文件
  2. 使用数据库来存储你的数据
  3. 使用咸菜或搁置序列化的变量和稍后再回来。
  4. 把变量的Python模块中导入
+0

我不记得说什么...... – jamylak 2012-07-08 11:03:55

+0

对不起,这是@Levon。 – dolaameng 2012-07-08 11:44:20

+1

不,不认为它是我..但是,感谢信用:) – Levon 2012-07-08 15:06:26