2015-09-24 39 views
0

我有一個按行分割的txt。每行包含一個IPv6地址。我必須檢查一行中是否有18個零,如果有,則必須將它寫入文件。但我的代碼不起作用。Python 3:ValueError:int()與基數10的無效文字:'d'

i = 0 
j = 0 
nullak = 0 
with open('sok.txt', 'w') as kiiras: 
    for sor in cimek: 
     aktualis = list(cimek[i]) 
     for nullak in aktualis: 
      if aktualis[j] == 0: 
       nullak += 1 
      j += 1 
     if int(nullak) >= 18: 
      kiiras.write('{0}. {1}'.format(i+1, cimek[i])) 
     i += 1 
     nullak = 0 
     j = 0 

我得到的錯誤 'ValueError異常:無效字面對於int()與底座10: '' 中' 線d '如果INT(nullak)> = 18:'。爲什麼?

+0

這意味着'nullak'具有'D',而不是一個數字值的值。嘗試打印'aktualis'以在迭代之前仔細檢查其內容。 –

+0

但nullak是從零開始,如果找到一個零,只需添加一個nullak。所以它不能包含'd',我想。 –

+2

'在aktualis'中的nullak覆蓋'nullak'。 – Kevin

回答

1

嘗試使用只是串邏輯:

int(nullak) >= 18 

變爲:

nullak.count('0') >= 18 
相關問題