次の形式のテキスト ファイルがあります。
AAAAATTTTTT
AAATTTTTTGGG
TTTDDDCCVVVVV
行頭と行末で順番に文字の出現回数を計算しようとしています。
私は次の関数を書きました:
def getStartEnd(sequence):
start = sequence[0]
end = sequence[-1]
startCount = 0
endCount = 0
for char in sequence:
if char == start:
startCount += 1
if ( char != start):
break
for char in reversed(sequence):
if char == end:
endCount += 1
if ( char != end):
break
return startCount, endCount
この関数は、文字列に対して独立して機能します。例:
seq = "TTTDDDCCVVVVV"
a,b = getStartEnd(seq)
print a,b
しかし、for ループに挿入すると、ファイルの最後の行でのみ正しい値が得られます。
file = open("Test.txt", 'r')
for line in file:
a,b = getStartEnd(str(line))
print a, b