[英]unboundlocalerror local variable 'i' referenced before assignment
[英]UnboundLocalError: local variable 'i' referenced before assignment
我不断收到这个烦人的错误,不知道如何解决它。
我试图用 for 语句打开一个 txt 文件:
def file_len(fname):
with open(fname) as f:
for i, l in enumerate(f):
pass
return i + 1
你的文件是空的。 没有循环运行的迭代,并且i
永远不会被分配。
您需要处理空文件的情况。 为了计算不支持len
的迭代中的项目,我通常使用sum(1 for elem in thing)
:
def file_line_count(fname):
with open(fname) as f:
return sum(1 for line in f)
我想这就是你需要的:
def file_len(fname):
counter = 0
with open(fname) as f:
for i, l in enumerate(f):
counter += 1
return counter
一个更优雅的版本:
def file_len(fname):
with open(fname) as f:
length = len(f.readlines())
return length
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.