csv 尝试将数据写入新的.txt文件时出现索引越界错误

qaxu7uf2  于 2023-06-19  发布在  其他
关注(0)|答案(1)|浏览(123)

我正试图将.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文件。我不明白为什么数据会继续超过指定的范围。

t1qtbnec

t1qtbnec1#

代码for i in range(data[75054],data[1048576],1)实际上将data在位置 75054 处的内容作为range()函数的整数。
从你的问题看,你似乎想在75054 1048576范围内循环<->。这可以通过for i in range(75054,1048576,1)实现
用密码

for i in range(75054,1048576):
    f.write(data[i])

您从 75054 循环到 1048576,并将data[i]的内容写入文件(对象f)中的位置i(这是循环内的整数)
在上面的例子中,range()末尾的1被删除了,因为它被Python本身设置为默认值1
关于range()的一些文档。您可能还需要检查lists in Python

相关问题