Python3列表索引超出从文件提取数据的范围

2024-09-28 01:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从文件中提取数据,并用“for循环”更改条目的值

f = open(r"C:\Users\Measurement\LOGGNSS.txt", "r")
x=0
content = [[],[]]
for line in f:
    actualline = line.strip()
    content.append(actualline.split(","))
    x+=1
f.close

print(x)
for z in range(x):
    print(z)
    print(content[z][1])

索引器错误:列表索引超出范围

使用实数值而不是变量“z”可以很好地工作。但是我需要更改整个2D数组中的所有第一个条目。 为什么它不起作用


Tags: 数据in目的txtforlineopencontent
2条回答

您使用两个空数组初始化内容,因此这两个数组都无法找到第一个索引([1]),只需使用一个空数组初始化即可

content = []

您的代码有几个问题。 首先,使用with statement正确打开/关闭文件。 然后,您不需要使用像x这样的变量来跟踪行数,只需使用enumerate()即可

下面是我将如何重构您的代码,使其更精简、更可读

input_file = r"C:\Users\Measurement\LOGGNSS.txt"
content = []

with open(input_file, 'r') as f:
    for line in f:
        clean_line = line.strip().split(",")
        content.append(clean_line)

for z, data in enumerate(content):
    print(z,'\n',data)

请注意,您可以在单个循环中读取文件时打印内容

with open(input_file, 'r') as f:
    for z, line in enumerate(f):
        clean_line = line.strip().split(",")
        content.append(clean_line)
        print(z,'\n', clean_line)

最后,如果您正在处理一个简单的csv文件,那么使用标准库中的csv module

import csv

with open(input_file, 'r') as f:
    content = csv.reader(f, delimiter=',')

相关问题 更多 >

    热门问题