看板 Python 關於我們 聯絡資訊
我在家裡跟lab想跑一個code,結果家裡跑得出來 但是在lab裡跑卻顯示"list index out of range " 想請問一下為什麼,是記憶體的問題嗎? 程式碼如下: import gzip import cPickle cog_cats = {} cogs_seqs = {} cog_names = {} pfam_seqs = {} pfam_cog = {} import os if 'pfam_cog_dict.p' not in os.listdir('.'): ## map cog name to cog category print 'mapping cog name to cog category' with open('cogs.csv', 'r') as cog_file: for line in cog_file: line = line.rstrip() line = line.split(',') cog_cats[line[0]] = line[1] cog_names[line[0]] = line[2] print cog_cats print cog_names 讀取的檔案的網址(.csv): ftp://ftp.ncbi.nih.gov/pub/wolf/COGs/COG0303/cogs.csv 還請大家幫我解惑 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 120.126.36.171 ※ 文章網址: http://www.ptt.cc/bbs/Python/M.1404199522.A.614.html
ck574b027:應該要附上 error 在哪裡出錯,我猜是 split 之後的 07/01 15:57
ck574b027:index,line 印出來看看長什麼樣子吧。 07/01 15:58
錯誤的訊息如下: http://ppt.cc/LcOT 用另外一台電腦跑一樣的data跟code,出來結果是這樣: http://ppt.cc/gHCj line的樣子: http://ppt.cc/0Oy1 ※ 編輯: sariel0322 (120.126.36.171), 07/01/2014 16:15:46 搞不太懂為何會這樣,家裡是win7,lab是win8,一開始以為是作業系統的問題 但是現在用第三台電腦跑(同樣是win8)結果跑得出來 因為後面還有更複雜的程式碼,用家裡電腦跑會當掉 因此想用lab的電腦跑 ※ 編輯: sariel0322 (120.126.36.171), 07/01/2014 16:18:31 ※ 編輯: sariel0322 (120.126.36.171), 07/01/2014 16:21:34
ck574b027:你是用 lab print line 嗎?為什麼可以好好的印出全部? 07/01 17:14
tiefblau:你要用噴error那台印line 才看的出東西阿 07/01 18:04
monkeytiger:如果csv檔案中間有空白行或者是沒有第2第3欄欄位資料 07/01 19:49
monkeytiger:就會爆出index out of range 07/01 19:49
我是用跑起來正常的電腦來RUN的,謝謝上面大家的回覆,我在試試看 主要是很好奇到底是怎樣會這樣,試過了滿多台電腦,只有我的電腦有問題 ※ 編輯: sariel0322 (120.126.91.221), 07/02/2014 10:21:42
yauhh:除了判斷OS不同之外,你可以再確認Python版本是否不同. 07/02 14:28
yauhh:並且在出錯的那一行之前寫個print(len(line))來看看 07/02 14:29