【发布时间】:2015-09-24 18:59:21
【问题描述】:
我有一个按行分隔的 txt。每行包含一个 IPv6 地址。我必须检查一行中是否有 18 个零,如果有,则必须将其写入文件。但是我的代码不起作用。
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
我在“if int(nullak) >= 18:”行中收到错误“ValueError: invalid literal for int() with base 10: 'd''。为什么?
【问题讨论】:
-
表示
nullak的值为d,不是数值。尝试打印aktualis以在迭代之前仔细检查其内容。 -
但是 nullak 从一开始就为零,如果找到零,只需将 nullak 加一。所以我认为它不能包含“d”。
-
for nullak in aktualis覆盖nullak。 -
谢谢,这就是我得到错误的原因,但它仍然没有在文件中写入任何内容。为什么?
标签: python