作者sariel0322 (sariel)
看板Python
标题[问题] 不同电脑上同样的code却执行结果不一样?
时间Tue Jul 1 15:25:19 2014
我在家里跟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://webptt.com/cn.aspx?n=bbs/Python/M.1404199522.A.614.html
1F:→ ck574b027:应该要附上 error 在哪里出错,我猜是 split 之後的 07/01 15:57
2F:→ 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
3F:→ ck574b027:你是用 lab print line 吗?为什麽可以好好的印出全部? 07/01 17:14
4F:推 tiefblau:你要用喷error那台印line 才看的出东西阿 07/01 18:04
5F:→ monkeytiger:如果csv档案中间有空白行或者是没有第2第3栏栏位资料 07/01 19:49
6F:→ monkeytiger:就会爆出index out of range 07/01 19:49
我是用跑起来正常的电脑来RUN的,谢谢上面大家的回覆,我在试试看
主要是很好奇到底是怎样会这样,试过了满多台电脑,只有我的电脑有问题
※ 编辑: sariel0322 (120.126.91.221), 07/02/2014 10:21:42
7F:→ yauhh:除了判断OS不同之外,你可以再确认Python版本是否不同. 07/02 14:28
8F:→ yauhh:并且在出错的那一行之前写个print(len(line))来看看 07/02 14:29