Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.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在使用“in-line”时关闭文件;至于;陈述_Python_File - Fatal编程技术网

python在使用“in-line”时关闭文件;至于;陈述

python在使用“in-line”时关闭文件;至于;陈述,python,file,Python,File,我使用以下公式计算文件中的行数: n = sum(1 for line in open(counts_file_location)) 问题: 文件计数\u文件\u位置是否在“for”循环结束时自动关闭 如果文件未自动关闭,如何关闭?没有为该文件指定文件指针 应该这样做,但这取决于实现 如果要确保文件已关闭,请尝试打开: with open(counts_file_location) as file: n = sum(1 for line in file) 这里有一行代码用于打开文件、

我使用以下公式计算文件中的行数:

n = sum(1 for line in open(counts_file_location))
问题:

  • 文件<代码>计数\u文件\u位置是否在“for”循环结束时自动关闭
  • 如果文件未自动关闭,如何关闭?没有为该文件指定文件指针

  • 应该这样做,但这取决于实现

    如果要确保文件已关闭,请尝试打开

    with open(counts_file_location) as file:
        n = sum(1 for line in file)
    

    这里有一行代码用于打开文件、关闭文件和获取行数:

    lineCount = (lambda a: (sum(1 for line in a), a.close()))(open(counts_file_location))[0]
    
    它不是一行,但可读性好,工作正常,并关闭文件


    如果您经常需要它,您可以定义相应的函数。

    可能重复的可能重复的只是不要以这种方式打开文件。将
    语句一起使用。它更安全,尤其是在不是CPython的Python实现上。这并不是针对特定的问题——您的意思是
    n=sum(1表示文件中的行)
    count = 0
    with open(counts_file_location) as my_file:
      for line in my_file:
        count += 1
    print count