这是一个小小的' hackety'脚本我写的是为了工作,它打印了两次找到的所有行,为什么?
#!/usr/bin/python
ins = open("FileName")
for line in ins:
s = list(line.decode("utf-8"))
for character in s:
if ord( character ) > 10000:
print repr(line)
ins.close()
答案 0 :(得分:3)
你的内循环需要休息。
for line in ins:
s = list(line.decode("utf-8"))
for character in s:
if ord( character ) > 10000:
print repr(line)
# Found it in the line, move onto the next line
break
否则,如果一行中有多个匹配项,您将多次打印一行。
您应该对文件句柄使用 with 语句。
with open("FileName", "r") as ins:
<do stuff with ins>
此外,您不必将line.decode()返回的字符串转换为列表;调用它的迭代器是列表构造函数无论如何都会做的。也可以摆脱中间人。