2012-05-25 68 views
1

我有bitarray文件看起來像這樣:保存蟒蛇輸出到可變

10000000000000000000000000000000000000000000000000000000000000000000001000000 

我需要的比特的總和根據其在bitarray位置(第二位,第二位+ 7,第二位+14)。我嘗試了下面的代碼,但它只是第一個打印值的總和。你能指導我解決這個問題嗎?

lines = [line.strip() for line in open('test.txt')] 
    bitp = range(1,len(lines[0]),7) 
    for i in lines: 
     for p in bitp: 
      bitsum = sum(int(a) for a in i[p]) 
+0

您將'bitp'的大小設置爲第一行_only_,所有行的長度是否相同? – Hooked

+0

文件中是否有多個bitarray行?你能否以更全面的方式解釋「第二位,第二位+7位,第二位+14」? –

+0

@Hooked是的,它有相同的大小 –

回答

1

我想你想存儲每行的總和?在這種情況下,您需要一個列表:

bitsums = list() 
with open('test.txt') as fobj: 
    for line in fobj: 
     bitsums.append(sum(int(c) for c in line.strip()[1::7])) 
+0

謝謝!它的工作完美。所以,問題是剝離和列表功能。 –