⑴ 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噴鍣ㄤ細鍋滄㈡墽琛屽苟鎶涘嚭璇ュ紓甯革紝浠ユ彁閱掑紑鍙戣呮湁閿欒鍙戠敓銆