![](/img/trans.png)
[英]Python - Extracting data from a text file (list index out of range)
[英]Python3 - list index out of range - extracting data from file
我想从文件中提取数据并使用“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])
IndexError:列表索引超出范围
使用实际值而不是变量 'z' 可以正常工作。 但是我需要更改整个二维数组中的所有第一个条目。 为什么它不起作用?
你用两个空数组初始化你的内容,所以这两个都找不到第一个索引( [1]
),只需用一个空数组初始化它
content = []
您的代码有几个问题。 首先,使用with 语句正确打开/关闭文件。 然后,您不需要使用像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 模块。
import csv
with open(input_file, 'r') as f:
content = csv.reader(f, delimiter=',')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.