Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 计算文本文件中的行数_Python_For Loop - Fatal编程技术网

Python 计算文本文件中的行数

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() 试试这

我正在尝试创建一个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()
试试这个

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上起作用,它会一次将整个文件读入内存。打开文件后,你可以对行中的行进行
,但你要手动编写一个循环,即使你没有一次将整个文件加载到内存中……但要权衡所有因素。为什么要将所有行加载到内存中?为什么要将所有行加载到内存中?