我目前正在尝试从以下输入文件创建字典:
1776344_at 1779734_at 0.755332745 1.009570769 -0.497209846
1776344_at 1771911_at 0.931592828 0.830039019 2.28101445
1776344_at 1777458_at 0.746306282 0.753624146 3.709120716
...
...
该文件共有 12552 行。
我想做的是创建一个字典,其中前 2 列是键,其余列是值。我已经成功完成了,它看起来像这样:
1770449_s_at;1777263_at:0.825723773;1.188969175;-2.858979578
1772892_at;1772051_at:-0.743866602;-1.303847456;26.41464414
1777227_at;1779218_s_at:0.819554413;0.677758609;4.51390617
但事情是这样的:我在 ms-dos cmd 上运行了我的 python 脚本,生成的输出不仅与输入文件中的序列不同(即第 1 行是第 34 行),整个文件只有 739线。
有人可以告诉我发生了什么吗?跟记忆有关系吗?因为我最后一次检查我还有 305GB 的磁盘空间。
我写的脚本如下:
import sys
import os
input_file = sys.argv[1]
infile = open(input_file, 'r')
model_dict = {}
for line in infile:
key = ';'.join(line.split('\t')[0:2]).rstrip(os.linesep)
value = ';'.join(line.split('\t')[2:]).rstrip(os.linesep)
print 'keys are:',key,'\n','values are:',value
model_dict[key] = value
print model_dict
outfile = open('model_dict', 'w')
for key,value in model_dict.items():
print key,value
outfile.write('%s:%s\n' % (key,value))
outfile.close()