⑴ python 按列读取文本数据 列表越界咋回事啊@_@ IndexError:list index out of range
因为空行导致split函数返回的tmp为空,所以tmp[0]导致了数组越界。
分析思答瞎路:
1、报错信息里面已经提示了第12有误。
2、提示为数组index越界,而12行的代码中tmp[0]涉及数组。
3、找到tmp的定义,是split函数分解之后的内容,应当为一个list列表。
4、但是此处连tmp[0]都提示梁举兄有错,说明tmp中没有任何元素。
5、推得for i in f0,中的没一行的数据i有问题,当运行到最后,回出现一个由问题的i。
所以文件最后一行为空行,通常为写入文件函数每行之后附带的 转义字符导致。
IndexError: list index out of range错误的其他情况
第一种情况:
list[index]index超出范围
第二种情况:
list是一个空的,没有一个元素
进行list[0]就会报该错误。
一般外部输入的数据都可能存在问题,所以通常在readlines或者read后要做一次处理。
这样就避免了空橡袭行,字段数不足,以及类型转换出错。
解决方案:
针对第一种情况,通过调试检查代码。
关于第二种情况,有两种方法:
第一种:检查读入的数据是都有问题,比如读入的txt文件是否存在空行等等,第二种解决方案,在代码上改错。
with open("linux_Yue_01.txt","r") as testFile:
testfileList = []
for v testFile.read().split(" ")
if not v.strip(): #字符串去掉空格不为空
continue
testfileList.extend([splitFileNameAndLabel(v)])
注意:[splitFileNameAndLabel(v)]是又方括号的,否则不能成为列表中嵌套列表了。
⑵ 求问Python中IndexError: list index out of range怎么解决只能写入9个网络爬取的数据
Traceback (most recent call last):
File "D:\Program Files (x86)\JetBrains\PyCharm Ecational Edition 1.0.1\helpers\pydev\pydev_run_in_console.py", line 66, in <mole>
globals = run_file(file, None, None)
File "D:\Program Files (x86)\JetBrains\PyCharm Ecational Edition 1.0.1\helpers\pydev\pydev_run_in_console.py", line 28, in run_file
pydev_imports.execfile(file, globals, locals) # execute the script
File "D:/python/xpth/xpathPractice.py", line 51, in <mole>
results = pool.map(spider, page)
File "D:\anzhuang\Anaconda\lib\multiprocessing\pool.py", line 251, in map
return self.map_async(func, iterable, chunksize).get()
File "D:\anzhuang\Anaconda\lib\multiprocessing\pool.py", line 558, in get
raise self._value
IndexError: list index out of
出现如上所示的错误:
IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]
⑶ indexerror灞炰簬浠涔埚纾甯
杩愯屾椂寮傚父銆
IndexError鏄疨ython涓镄勪竴涓阌栾绫诲瀷锛屽畠琛ㄧず褰揿皾璇曡块梾涓涓涓嶅瓨鍦ㄧ殑鍒楄〃鍏幂礌镞跺彂鐢熺殑阌栾銆俰ndexerror灞炰簬杩愯屾椂寮傚父锛屽畠阃氩父鏄鐢变簬绋嫔簭瓒婄晫璁块梾瀵艰嚧镄勶纴鍗宠瘯锲捐块梾涓涓涓嶅瓨鍦ㄧ殑绱㈠紩锛屽綋鍙戠敓indexerror镞讹纴Python瑙i喷鍣ㄤ细锅沧㈡墽琛屽苟鎶涘嚭璇ュ纾甯革纴浠ユ彁阅掑紑鍙戣呮湁阌栾鍙戠敓銆