我的文本文件如下......
S1
MPPRRSIVEVKVLDVQKRRVPNKHYVYIIRVTWSSGATEAIYRRYSKFFDLQMQMLDKFP MEGGQKDPKQRIIPFLPGKILFRRSHIRDVAVKRLIPIDEYCKALIQLPPYISQCDEVLQ FFETRPEDLNPPKEEHIGKKKSGNDPTSVDPMVLEQYVVVADYQKQESSEISLSVGQVVD
S2
MAEVRKFTKRLSKPGTAAELRQSVSEAVRGSVVLEKAKLVEPLDYENVITQRKTQIYSDP LRDLLMFPMEDISISVIGRQRRTVQSTVPEDAEKRAQSLFVKECIKTYSTDWHVVNYKYE DFSGDFRMLPCKSLRPEKIPNHVFEIDEDCEKDEDSSSLCSQKGGVIKQGWLHKANVNST
。 。
我想计算每个序列输出中的字母'P'应该是
> S1:10
> S2:20
按如下方式实现此python脚本
infile=open("file1.txt",'r')
out=open("file2.csv",'w')
for line in infile:
line = line.strip("\n")
if line.startswith('>'):
name=line
else:
pattern = line.count('P')
print '%s:%s' %(name,pattern)
out.write('%s:%s\n' %(name,pattern))
它读取行并给出如下结果
> S1:2
> S1:3
> S1:5
> S2:10
> S2:10
但我除了以下内容如下
> S1:10
> S2:20 。 。
任何人都可以帮助如何做到这一点......
先谢谢 镍
答案 0 :(得分:1)
total = 0
for line in infile:
line = line.strip("\n")
if line.startswith('>'):
name = line
else:
pattern = line.count('P')
total += pattern
print '%s:%s' %(name,pattern)
#this goes outside the for loop
out.write('%s:%s\n' %(name,total))
答案 1 :(得分:1)
不要逐行解析文件。只需通过字符计算您要查找的字符的出现次数来遍历整个文件字符。