在文件中搜索变量并使用python获取其值

2024-10-04 11:29:34 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

我希望用户输入列表名或者变量名

如果用户输入employee并希望对列表值执行一些操作,那么用户应该访问employee[0]employee[1]。。。。等等

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

谢谢


Tags: 文件用户脚本yaml列表employeebobmanagers
2条回答

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

  1. 通过格式化文件(例如通过文件中的分隔符“=”)自己读取文件
  2. 使用数据库存储数据
  3. 使用pickle或shelve序列化变量,稍后再获取它们。在
  4. 将变量放入python模块并导入它

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

更新:我添加了解析之前没有提供的列表所需的代码。在

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

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

产量:

^{pr2}$

相关问题 更多 >