我的目标:我创建的程序的目的是让用户输入元素的名称。然后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级。 所以我给了你一条感谢信息。
答案 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'])