将带有变量的文本文件导入python

时间:2015-08-10 08:24:29

标签: python file import external

我的目标:我创建的程序的目的是让用户输入元素的名称。然后python读入一个外部文件,找到所请求元素的值,最后打印出值。

例如 -

>>> helium
2

问题是我不知道如何让python解释看起来像这样的txt文件

hydrogen = 1
helium =  2
lithium = 3

作为代码。因此,当我输入print(锂)时,我收到错误。

我的要求: 有人可以告诉我如何能够将它读出来并将其打印出来。我不需要任何关于用户输入和所有这些的帮助。

提前致谢。

更新

我使用过这段代码:

import json
file = open("noble_gases.json","r")
elements = json.loads(file.read())

noble_gases.json看起来像这样:

"helium" : 2,
"neon" : 10,
"argon" : 18,
"krypton" : 36,
"xenon" : 54,
"radon" : 86,

我现在收到此错误:

Traceback (most recent call last):
  File "C:\Python34\Programs\Python Mini Project\finder.py", line 3, in <module>
    elements = json.loads(file.read())
  File "C:\Python34\lib\json\__init__.py", line 318, in loads
    return _default_decoder.decode(s)
  File "C:\Python34\lib\json\decoder.py", line 346, in decode
    raise ValueError(errmsg("Extra data", s, end, len(s)))
ValueError: Extra data: line 1 column 10 - line 7 column 1 (char 9 - 85)

感谢所有违规的人。我对答复的速度感到惊讶。

更新:

删除json文件中的最后一个逗号就可以了。 感谢所有帮助过的人。 我不能放弃评级,因为我不是15级。 所以我给了你一条感谢信息。

项目完成

3 个答案:

答案 0 :(得分:1)

你可以解析文本文件(正如其他建议的那样),如果你问我会有多少不必要的复杂性,或者你可以使用更多编程友好的数据格式。我建议使用适合你的json或yaml。

如果您使用的是json,则可以执行以下操作: -

# rename gas.txt to gas.json
{
    'hydrogen': 1,
    'helium': 2,
    'lithium': 3
}

# in your code
import json
file = open('gas.json')
elements = json.loads(file.read())
print(elements['helium'])

答案 1 :(得分:0)

这可能会有所帮助

from collections import defaultdict
FILE = open("gas.txt","r")
GAS = defaultdict(str)
for line in FILE:
    gasdata = line.strip().split('=')
    GAS[gasdata[0].strip()] = gasdata[1].strip()

print GAS['carbon dioxide'] # 4

gas.txt是:

hydrogen = 1
helium =  2
lithium = 3
carbon dioxide = 4

答案 2 :(得分:0)

这应该做你需要的:

gas = {}
with open('gas.txt', 'r') as gasfile:
    for line in gasfile:
        name, value = line.replace(' ', '').strip('=')
        gas[name] = value


# The gas dictionary now contains the appropriate key/value pairs

print(gas['helium'])