各位用户为了找寻关于Python使用defaultdict读取文件各列的方法的资料费劲了很多周折。这里教程网为您整理了关于Python使用defaultdict读取文件各列的方法的相关资料,仅供查阅,以下为您介绍关于Python使用defaultdict读取文件各列的方法的详细内容
本文实例讲述了Python使用defaultdict读取文件各列的方法。分享给大家供大家参考,具体如下:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48#!/usr/bin/python
"""USAGE: python *.py align_SNP_site out_file"""
import
sys
#import time
from
collections
import
Counter
#t0=time.clock()
info
=
open
(sys.argv[
1
])
fast
=
sys.argv[
2
]
d_c
=
{}
d1
=
{}
d2
=
{}
for
line
in
info:
cols
=
line.strip().split(
"t"
)
if
cols[
0
]
=
=
"SNP pattern"
:
continue
else
:
d1.setdefault(cols[
4
],[]).append(cols[
1
])
d2.setdefault(cols[
7
],[]).append(cols[
1
])
#d1.setdefault(cols[0],[]).append(cols[5])
#d2[cols[0]] = "t".join(cols[0:3])
info.close()
print
len
(d1)
print
len
(d2)
my_list
=
[]
ref_fa
=
open
(
"some_example.fasta"
,
'r'
)
for
i
in
ref_fa.readlines():
if
i.startswith(
">"
):
my_list.append(i.rstrip())
ref_fa.close()
print
len
(my_list)
#sys.exit()
result
=
open
(fast,
'w'
)
for
k,v
in
d1.iteritems():
cnt1
=
Counter(v)
#print cnt1
result.write(
"%st"
%
k)
for
i
in
sorted
(cnt1.items(), key
=
lambda
x: x[
1
], reverse
=
True
):
result.write(
"%st%dt"
%
(i[
0
],i[
1
]))
result.write(
"n"
)
for
k,v
in
d2.iteritems():
cnt2
=
Counter(v)
#print cnt2
result.write(
"%st"
%
k)
for
i
in
sorted
(cnt2.items(), key
=
lambda
x: x[
1
], reverse
=
False
):
result.write(
"%st%dt"
%
( i[
0
],i[
1
]))
result.write(
"n"
)
#t1=time.clock()
#print (t1-t0)
希望本文所述对大家Python程序设计有所帮助。