提问人:John 提问时间:7/5/2022 最后编辑:DharmanJohn 更新时间:6/12/2023 访问量:95
尝试将数据写入新的 .txt 文件时出现错误索引越界
Error Index out of Bound when trying to write data to new .txt file
问:
我正在尝试将数据的特定部分从 .txt 文件写入不同的 .txt 文件以供以后使用。
代码如下。
file = open(path, newline='')
reader = csv.reader(file)
header = next(reader)
data = [row for row in reader]
#read only cartesian points to new text file
f = open("Cartesian Points.txt", "w+")
#create a range from the first cartesian point 75054 to the last 1048576
for i in range(data[75054],data[1048576],1):
f.write(data[i])
f.close()
我的想法是完全解析原始文件,然后为笛卡尔点创建一个范围,并将其写入不同的 .txt 文件以供以后使用。
但是,在写入数据时,我收到错误
for i in range(data[75054],data[1048576],1):
IndexError: list index out of range
我很困惑,因为我知道数据范围从单元格 75054 到 1048576,它应该简单地将该数据写入新的.txt文件。我不明白为什么数据会继续超过指定范围。
答:
0赞
NicoCaldo
7/5/2022
#1
该代码实际上将位置 75054 的内容作为函数的整数。for i in range(data[75054],data[1048576],1)
data
range()
从您的问题来看,您似乎想在 75054 <-> 1048576范围内循环。这可以通过以下方式实现for i in range(75054,1048576,1)
使用代码
for i in range(75054,1048576):
f.write(data[i])
从 75054 循环到 1048576,并将 at 位置的内容(这是循环内的整数)写入文件(对象)f
data[i]
i
在上面的示例中,结尾处的 in 已被删除,因为它被 Python 本身设置为默认值1
range()
1
一些关于 .您可能还想在 Python 中检查列表range()
评论
len(data)
range(75054, 1048576,1)
i
f.write(data[i])