如何在Python中将数据从Text转换为Variable



edit:我想使用我想从txt文件中提取的变量作为代码的输入。所以我需要它们作为一个变量。

我有两个python脚本,第一个以.txt文件的形式获取数据,文件内容如下;

posrobdone = 2258, 1016
posnight = 2258, 1016
posenter = 2258, 1016
posbuy = 2258, 1016
posrobbery = 2258, 1016

然后在我的第二个脚本中读取这个文本文件,并将这些数据作为变量获取,例如当我写作时;

print(posnight)

我想把输出看作;

2258,1016

然而,无论我做什么,我都不知道如何从这个文本文件中提取这些数据。无论我做什么,它都会给我像一样的错误

名称错误:名称"posnight"未定义

当我尝试此操作时;

with open("positions.txt", "r") as f:
positions = f.read()
print(positions)
print(posnight)

我可以得到这样的输出和错误;

posrobdone = 2258, 1016
posnight = 2258, 1016
posenter = 2258, 1016
posbuy = 2258, 1016
posrobbery = 2258, 1016
Traceback (most recent call last):
File "C:/Users/gamer/OneDrive/Masaüstü/crimsbot/crimsbot.py", line 11, in <module>
print(posnight)
NameError: name 'posnight' is not defined
Process finished with exit code 1

我甚至拿到了它们,然后用append转到一个列表,但对我来说不起作用。我在这个编码方面有点初学者,实际上我更喜欢计算机视觉领域,但我想通过这些小项目和挑战来提高自己。所以如果你能帮我解决这个问题,我会非常高兴。

提前感谢你的帮助。

将信息收集到字典中。不要试图从变量数据中创建变量。

from pprint import pprint
data = """
posrobdone = 2258, 1016
posnight = 2258, 1016
posenter = 2258, 1016
posbuy = 2258, 1016
posrobbery = 2258, 1016"""

collect = {}
for line in data.splitlines():
parts = line.strip().split()
collect[parts[0]] = int(parts[2][:-1]), int(parts[3])
pprint(collect)
print(collect['posnight'])

输出:

{'posbuy': (2258, 1016),
'posenter': (2258, 1016),
'posnight': (2258, 1016),
'posrobbery': (2258, 1016),
'posrobdone': (2258, 1016)}
(2258, 1016)

请注意,将for行更改为for line in open('positions.txt'):很容易。

最新更新