在 Python 中逐行读取文本文件并将其存储到结构中作为绘图坐标
Reading text file line by line in Python and storing into struct as coordinates for graphing
我有这样一个文本文件:
A,1,1
B,1,5
C,3,7
D,5,5
E,5,1
字母为节点标签,第一个数字为x坐标,第二个数字为y坐标。
我正在尝试将这些 "nodes" 存储为不同数组的片段(即字母标签存储在一个元素位置的数组中,x 坐标存储在匹配元素位置的数组中,并且y坐标存储到匹配元素位置)
所以对于我的第一个节点,我会:
A 在 nodeLabel[]
中的位置 0
1 在 xCoord[]
中的位置 0
1 在 yCoord[]
中的位置 0
这里涉及到我理解的几个概念。首先,我需要打开文件并从中读取。
文件需要读取到逗号或\n并存储值
然后需要切换数组,读取到下一个逗号或\n
并存储值。
然后需要切换数组,读取到下一个逗号或\n
并存储值。
如果 .read 函数命中一个新行,那么它需要转到
下一行
我的问题是我不知道如何告诉 Python 我想将特定值存储在哪里以及它们应该存储到哪个数组中。我找到了一些关于使用 split()
函数的信息。这能让我告诉 read()
函数什么时候停止吗?
现在我有这个:
def file_stuff():
with open('Offices.txt') as input_data:
for line in input_data
if line.strip() == ',', '\n':
break
elif
我不确定要将我的 elif
条件设置为什么。
这作为一个结构是否更有意义,因为我必须实现一个 GUI 来绘制节点图?
像这样:
def file_stuff():
nodes = []
X = []
Y = []
with open('Offices.txt') as input_data:
for line in input_data:
n, x, y = line.split(',')
nodes.append(n)
X.append(int(x))
Y.append(int(y))
这很简单,因为它不检查输入文件的有效性,但如果文件格式正确,应该会执行您想要的操作。
另一个问题是你的函数没有 return 任何值,如果你想做进一步的操作,你应该添加如下内容:
return (n, X, Y)
我有这样一个文本文件:
A,1,1
B,1,5
C,3,7
D,5,5
E,5,1
字母为节点标签,第一个数字为x坐标,第二个数字为y坐标。
我正在尝试将这些 "nodes" 存储为不同数组的片段(即字母标签存储在一个元素位置的数组中,x 坐标存储在匹配元素位置的数组中,并且y坐标存储到匹配元素位置)
所以对于我的第一个节点,我会:
A 在 nodeLabel[]
1 在 xCoord[]
1 在 yCoord[]
这里涉及到我理解的几个概念。首先,我需要打开文件并从中读取。
文件需要读取到逗号或\n并存储值
然后需要切换数组,读取到下一个逗号或\n 并存储值。
然后需要切换数组,读取到下一个逗号或\n 并存储值。
如果 .read 函数命中一个新行,那么它需要转到 下一行
我的问题是我不知道如何告诉 Python 我想将特定值存储在哪里以及它们应该存储到哪个数组中。我找到了一些关于使用 split()
函数的信息。这能让我告诉 read()
函数什么时候停止吗?
现在我有这个:
def file_stuff():
with open('Offices.txt') as input_data:
for line in input_data
if line.strip() == ',', '\n':
break
elif
我不确定要将我的 elif
条件设置为什么。
这作为一个结构是否更有意义,因为我必须实现一个 GUI 来绘制节点图?
像这样:
def file_stuff():
nodes = []
X = []
Y = []
with open('Offices.txt') as input_data:
for line in input_data:
n, x, y = line.split(',')
nodes.append(n)
X.append(int(x))
Y.append(int(y))
这很简单,因为它不检查输入文件的有效性,但如果文件格式正确,应该会执行您想要的操作。 另一个问题是你的函数没有 return 任何值,如果你想做进一步的操作,你应该添加如下内容:
return (n, X, Y)