好吧,我知道这听起来像是一个家庭作业问题(因为它有点像),但是我们的讲师已经把我们推向了深处,我需要一些帮助,我的谷歌也失败了。 作为赋值的一部分,我需要从文本文件中读取数据,并将文本文件的每一行复制到数组/列表中。我所做的不起作用。 到目前为止我所拥有的:
def main():
file = open(pickAFile())
lines = []
index = 0
for line in file:
lines[index] = line
index = index + 1
但是这回来了: 错误值为:列表分配索引超出范围序列索引超出范围。您使用的索引超出了该数据的大小(太低或太高)。例如,您可能尝试访问OurArray [10],而OurArray只有5个元素。
欢迎任何帮助!
答案 0 :(得分:1)
问题在于lines[index] = line
行。第一次迭代中lines[0]
没有任何内容。
您需要将此行更改为lines.append(line)
,并且您不需要在index
之后跟踪,因此您的整个代码应如下所示:
def main():
file = open(pickAFile())
lines = []
for line in file:
lines.append(line)
append
将其收到的参数添加到调用它的列表中的最后一个索引,请参阅the docs。
答案 1 :(得分:0)
如果您的列表为空(list
),则无法像这样扩展lines = []
,那么lines[index]
正在尝试访问非现有索引,从而引发错误。
如果您想在列表中附加内容,请使用append功能:
lines.append(line)
但是如果你想阅读文件中的所有行,你最好使用readlines
方法:
lines = file.readlines()
答案 2 :(得分:0)
要将文件读入列表,您可以尝试:
{product , 111 video , 222 countdown , 333}
或
with open("file.txt") as f:
lines = f.readlines()
此处每行都有lines = [line for line in open("file.txt")]
个字符。要删除该用途,\n