从 Jython 中的文件中读取行
Reading lines from a file in Jython
好吧,我知道这听起来像是一道作业题(因为有点像),但我们的讲师让我们陷入了困境,我需要一点帮助,我的 google-fu 失败了。
作为作业的一部分,我需要从文本文件中读取数据,并将文本文件的每一行复制到 array/list 中。我所做的是行不通的。
我目前拥有的:
def main():
file = open(pickAFile())
lines = []
index = 0
for line in file:
lines[index] = line
index = index + 1
但这会返回:
错误值为:列表赋值索引超出范围序列索引超出范围。您使用的索引超出了该数据的大小(太低或太高)。例如,也许您尝试访问 OurArray[10],但 OurArray 中只有 5 个元素。
非常欢迎任何帮助!
问题出在 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。
您不能像这样扩展 list
,如果您的列表为空 (lines = []
),则 lines[index]
会尝试访问不存在的索引,因此会引发错误。
如果您想在列表中添加内容,请使用 append 函数:
lines.append(line)
但是如果你想读取文件中的所有行,你最好使用readlines
方法:
lines = file.readlines()
要将文件读入列表,您可以尝试:
with open("file.txt") as f:
lines = f.readlines()
或
lines = [line for line in open("file.txt")]
此处每行将有 \n
个字符。要删除该用途,line.rtrim('\n')
好吧,我知道这听起来像是一道作业题(因为有点像),但我们的讲师让我们陷入了困境,我需要一点帮助,我的 google-fu 失败了。 作为作业的一部分,我需要从文本文件中读取数据,并将文本文件的每一行复制到 array/list 中。我所做的是行不通的。 我目前拥有的:
def main():
file = open(pickAFile())
lines = []
index = 0
for line in file:
lines[index] = line
index = index + 1
但这会返回: 错误值为:列表赋值索引超出范围序列索引超出范围。您使用的索引超出了该数据的大小(太低或太高)。例如,也许您尝试访问 OurArray[10],但 OurArray 中只有 5 个元素。
非常欢迎任何帮助!
问题出在 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。
您不能像这样扩展 list
,如果您的列表为空 (lines = []
),则 lines[index]
会尝试访问不存在的索引,因此会引发错误。
如果您想在列表中添加内容,请使用 append 函数:
lines.append(line)
但是如果你想读取文件中的所有行,你最好使用readlines
方法:
lines = file.readlines()
要将文件读入列表,您可以尝试:
with open("file.txt") as f:
lines = f.readlines()
或
lines = [line for line in open("file.txt")]
此处每行将有 \n
个字符。要删除该用途,line.rtrim('\n')