2

我想要一些存储在文件(文本文件或 yaml 文件)中的变量

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

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

我希望用户输入列表名称或变量名称,例如

如果用户输入员工并想要对列表值进行一些操作,以便用户应该访问employee[0]employee[1]....等

我如何编写一个 python 脚本,它将去文件搜索正确的变量并让用户访问它的值

谢谢

4

2 回答 2

3

就像@Levon 所说的那样,有几种方法可以让你做到这一点,最好的方法取决于你的问题背景。例如,你可以

  1. 通过格式化文件自己读取文件,例如,通过文件中的分隔符“=”
  2. 使用数据库来存储您的数据
  3. 使用 pickle 或 shelve 序列化您的变量并稍后取回它们。
  4. 将变量放在 python 模块中并导入它
于 2012-07-08T11:02:42.263 回答
0

假设您的文件内容有些一致,这种方法可能是一种方法:

更新:我添加了解析以前未提供的列表所需的代码。

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

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']
于 2012-07-08T13:26:39.340 回答