Python 尝试访问列表元素时出现索引错误
因此,我有一个csv样式的文本文档,如下所示:Python 尝试访问列表元素时出现索引错误,python,csv,indexing,Python,Csv,Indexing,因此,我有一个csv样式的文本文档,如下所示: Line number,1 1,K1,O1,L1,L2,L3 2,K2,O2,L2,L3 3,K3,O3,L1,L3 4,K4,O4,L2 我想检查“行号”之后第一行中的数字是否等于下面一行中的第一个元素。在这种情况下,该数字可以是1、2、3或4 我的代码如下: import csv lineNumber = 0 with open('B.txt', 'r') as f: reader = csv.reader(f,
Line number,1
1,K1,O1,L1,L2,L3
2,K2,O2,L2,L3
3,K3,O3,L1,L3
4,K4,O4,L2
我想检查“行号”之后第一行中的数字是否等于下面一行中的第一个元素。在这种情况下,该数字可以是1、2、3或4
我的代码如下:
import csv
lineNumber = 0
with open('B.txt', 'r') as f:
reader = csv.reader(f, delimiter=",")
for row in reader:
if "Line Number" in row[0]:
lineNumber = int(row[1]) <- not sure about this syntax btw
print("Is equal")
break
行[n]中的所有内容似乎都给出了一个错误 您的代码有两个改进:
import csv
lineNumber = 0
with open('test', 'r') as f:
reader = csv.reader(f, delimiter=",")
for row in reader:
if row[0] == 'Line number':
lineNumber = row[1]
else:
if row[0] == lineNumber:
print 'isEqual for row ',row
int
与int
next(reader)
提取for
循环前的第一行import csv
with open('B.txt', 'r') as f:
reader = csv.reader(f, delimiter=",")
headers = next(reader)
lineNumber = int(headers[1])
for row in reader:
if int(row[0]) == lineNumber:
print("Is equal")
break
您的代码有两个改进:
int
与int
next(reader)
提取for
循环前的第一行import csv
with open('B.txt', 'r') as f:
reader = csv.reader(f, delimiter=",")
headers = next(reader)
lineNumber = int(headers[1])
for row in reader:
if int(row[0]) == lineNumber:
print("Is equal")
break
您的示例csv文件列出了
“行号,1”
-您测试了“行号”
-查看n数字与n数字的大小写
创建文件并实现您的逻辑:
import csv
t= """Line number,1
1,K1,O1,L1,L2,L3
2,K2,O2,L2,L3
3,K3,O3,L1,L3
4,K4,O4,L2
"""
# create file
fn = "B.txt"
with open(fn,"w") as f:
f.write(t)
# parse file
lineNumber = 0
with open(fn, 'r') as f:
reader = csv.reader(f, delimiter=",")
for row in reader:
if "Line number" in row[0]: # fixed capitalization
lineNumber = row[1] # no need to make it an int, str compare is fine
elif row[0] == lineNumber:
print("Is equal", row)
break
您的示例csv文件列出了
“行号,1”
-您测试了“行号”
-查看n数字与n数字的大小写
创建文件并实现您的逻辑:
import csv
t= """Line number,1
1,K1,O1,L1,L2,L3
2,K2,O2,L2,L3
3,K3,O3,L1,L3
4,K4,O4,L2
"""
# create file
fn = "B.txt"
with open(fn,"w") as f:
f.write(t)
# parse file
lineNumber = 0
with open(fn, 'r') as f:
reader = csv.reader(f, delimiter=",")
for row in reader:
if "Line number" in row[0]: # fixed capitalization
lineNumber = row[1] # no need to make it an int, str compare is fine
elif row[0] == lineNumber:
print("Is equal", row)
break
那是个愚蠢的错误。谢谢你向我指出这一点。你完全正确,行号=行[1]而不是行[0]。这是一个愚蠢的错误。谢谢你向我指出这一点。您完全正确,行号=行[1]而不是行[0]。