gpt4 book ai didi

python - 访问从 CSV 文件读取的行时列表索引超出范围

转载 作者:行者123 更新时间:2023-11-30 23:40:08 26 4
gpt4 key购买 nike

我正在尝试用 python 读取 csv 文件。 csv 文件有 1400 行。我使用以下命令打开 csv 文件:

import csv  
import sys
f=csv.reader(open("/Users/Brian/Desktop/timesheets_9_1to10_5small.csv","rU"),
dialect=csv.excel_tab)

然后我尝试循环遍历文件,使用以下命令从每一行中提取名字:

for row in f:
g=row
s=g[0]
end_of_first_name=s.find(",")
first_name=s[0:end_of_first_name]

我收到以下错误消息:

Traceback (most recent call last):
File "", line 3, in module
s=g[0]
IndexError: list index out of range

有谁知道为什么我会收到此错误消息以及如何纠正它?

最佳答案

您不应该以通用换行模式 (U) 打开文件。以二进制模式打开文件:

f=csv.reader(open("/Users/Brian/Desktop/timesheets_9_1to10_5small.csv","rb"),
dialect=csv.excel_tab)

CSV 有自己的换行符处理,包括管理引号中的换行符。

接下来,使用 print repr(row) 打印行,以验证您是否获得了预期的输出。使用 repr 而不是常规的字符串表示形式可以让您更多地了解正在处理的对象的类型,突出显示字符串与整数等差异('1'1)。

第三,如果要选择字符串中直到逗号等分隔符的部分,请使用 .split(delimiter, 1).partition(delimiter)[0] :

>>> 'John,Jack,Jill'.partition(',')[0]
'John'

关于python - 访问从 CSV 文件读取的行时列表索引超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12885799/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com