我正试图将.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文件。我不明白为什么数据会继续超过指定的范围。
1条答案
按热度按时间t1qtbnec1#
代码
for i in range(data[75054],data[1048576],1)
实际上将data
在位置 75054 处的内容作为range()
函数的整数。从你的问题看,你似乎想在75054 1048576范围内循环<->。这可以通过
for i in range(75054,1048576,1)
实现用密码
您从 75054 循环到 1048576,并将
data[i]
的内容写入文件(对象f
)中的位置i
(这是循环内的整数)在上面的例子中,
range()
末尾的1
被删除了,因为它被Python本身设置为默认值1
关于
range()
的一些文档。您可能还需要检查lists in Python