[問題] 不同電腦上同樣的code卻執行結果不一樣?

看板Python作者 (sariel)時間10年前 (2014/07/01 15:25), 10年前編輯推噓1(107)
留言8則, 4人參與, 最新討論串1/2 (看更多)
我在家裡跟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

07/01 15:57, , 1F
應該要附上 error 在哪裡出錯,我猜是 split 之後的
07/01 15:57, 1F

07/01 15:58, , 2F
index,line 印出來看看長什麼樣子吧。
07/01 15:58, 2F
錯誤的訊息如下: 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

07/01 17:14, , 3F
你是用 lab print line 嗎?為什麼可以好好的印出全部?
07/01 17:14, 3F

07/01 18:04, , 4F
你要用噴error那台印line 才看的出東西阿
07/01 18:04, 4F

07/01 19:49, , 5F
如果csv檔案中間有空白行或者是沒有第2第3欄欄位資料
07/01 19:49, 5F

07/01 19:49, , 6F
就會爆出index out of range
07/01 19:49, 6F
我是用跑起來正常的電腦來RUN的,謝謝上面大家的回覆,我在試試看 主要是很好奇到底是怎樣會這樣,試過了滿多台電腦,只有我的電腦有問題 ※ 編輯: sariel0322 (120.126.91.221), 07/02/2014 10:21:42

07/02 14:28, , 7F
除了判斷OS不同之外,你可以再確認Python版本是否不同.
07/02 14:28, 7F

07/02 14:29, , 8F
並且在出錯的那一行之前寫個print(len(line))來看看
07/02 14:29, 8F
文章代碼(AID): #1Jic9YOK (Python)
文章代碼(AID): #1Jic9YOK (Python)