Python 计算文本文件中的行数
我正在尝试创建一个Python代码来计算文本文件中的行数。但是,它不会识别for语句,因为它在其下方的缩进上给了我错误Python 计算文本文件中的行数,python,for-loop,Python,For Loop,我正在尝试创建一个Python代码来计算文本文件中的行数。但是,它不会识别for语句,因为它在其下方的缩进上给了我错误 #*********************end of sec 1***************************** item=open("back.txt","r") i=0 countlist=[line.strip() for line in item]#seperate lines i=1+i print i item.close() 试试这
#*********************end of sec 1*****************************
item=open("back.txt","r")
i=0
countlist=[line.strip() for line in item]#seperate lines
i=1+i
print i
item.close()
试试这个
with open("back.txt", "r") as backfile:
lines = backfile.readlines()
return len(lines)
试试这个
with open("back.txt", "r") as backfile:
lines = backfile.readlines()
return len(lines)
无需使用…<代码>或关闭文件。。。这不会保留对fh的引用,因此它应该进行垃圾收集和销毁
无需使用…<代码>或关闭文件。。。这不会保留对fh的引用,因此它应该进行垃圾收集并很好地销毁。for封装在括号中,i=1+i不在for循环的范围内。因此,i=1+1不应缩进。for封装在括号中,i=1+i不在for循环的范围内。因此,i=1+1不应缩进。尝试以下操作:
with open("back.txt") as f:
print len(f.readlines())
for line in item:
i=i+1
试试这个:
for line in item:
i=i+1
不应在内存中保留太多不需要的生成器表达式
不应在内存中保留太多不需要的生成器表达式。实际上没有用于
循环的。你有一份清单。列表理解不允许或要求在每次迭代中执行缩进的语句块;它只是建立一个列表。如果只需要行数,则需要:
with open(filename) as f:
rowcount = sum(1 for line in f)
with open(filename) as f:
rows = [line.strip() for line in f]
rowcount = len(rows)
这会在完成后关闭文件,即使在除CPython以外的Python实现上也是如此,而且它不会将整个文件存储在内存中,因此它可以处理大型文件。如果需要实际的行列表,则需要以下内容:
with open(filename) as f:
rowcount = sum(1 for line in f)
with open(filename) as f:
rows = [line.strip() for line in f]
rowcount = len(rows)
实际上,您没有用于
循环的。你有一份清单。列表理解不允许或要求在每次迭代中执行缩进的语句块;它只是建立一个列表。如果只需要行数,则需要:
with open(filename) as f:
rowcount = sum(1 for line in f)
with open(filename) as f:
rows = [line.strip() for line in f]
rowcount = len(rows)
这会在完成后关闭文件,即使在除CPython以外的Python实现上也是如此,而且它不会将整个文件存储在内存中,因此它可以处理大型文件。如果需要实际的行列表,则需要以下内容:
with open(filename) as f:
rowcount = sum(1 for line in f)
with open(filename) as f:
rows = [line.strip() for line in f]
rowcount = len(rows)
i=1+i行应该是这样缩进的吗?i=1+i行应该是这样缩进的吗?只在CPython上工作,它一次将整个文件读入内存。打开文件后,可以对行中的行进行缩进,但之后你要手动编写一个循环,即使你没有一次将整个文件加载到内存中,但一切都要权衡。只在CPython上起作用,它会一次将整个文件读入内存。打开文件后,你可以对行中的行进行,,但你要手动编写一个循环,即使你没有一次将整个文件加载到内存中……但要权衡所有因素。为什么要将所有行加载到内存中?为什么要将所有行加载到内存中?