【问题标题】:How to turn data from Text to Variable in Python?如何在 Python 中将数据从文本转换为变量?
【发布时间】:2022-01-06 01:05:10
【问题描述】:

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

我有2个python脚本,第一个获取数据为.txt文件,文件内容是这样的;

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

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

print(posnight)

我想看到输出为;

2258, 1016

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

NameError: 名称“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

我什至得到它们并转向带有附加但对我不起作用的列表。我是这个编码方面的初学者,实际上我更喜欢计算机视觉领域,但是我想通过这些小项目和挑战来提高自己。所以如果你能帮我解决这个问题,我会非常高兴和高兴。

提前感谢您的帮助。

【问题讨论】:

  • 文件的内容只是文本。一大串字符。从文件中打开和读取字符不会神奇地创建 Python 变量。

标签: python string list variables text


【解决方案1】:

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

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'): 很容易。

【讨论】:

  • 所以我还有 1 个问题,如何从该文本文件中获取 data = "green" 部分?我希望我的第二个脚本直接从第一个创建的文本文件中工作。谢谢你的帮助。我还想在循环中使用那个 posnight、posbuy 等变量。
  • 你从来没有提到过data = "green",也没有提到有两个脚本,所以我不明白你的意思。你可以在循环中使用这些变量——只需写collect['posnight']
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-11-20
  • 2019-11-26
  • 1970-01-01
  • 2013-06-09
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
相关资源
最近更新 更多