Python 使用索引,打开(文件)作为枚举(文件指针)

Python 使用索引,打开(文件)作为枚举(文件指针),python,python-2.7,Python,Python 2.7,我试图使用with语法打开一个文件,同时也枚举文件的行 所以我试了一下: with index, open(filename) as enumerate(f): f.read()... 其中f对应于open(filename),而index应采用enumerate(f)。因此,我希望能够调用body中的f.read(),并知道正在处理文件的哪一行 我相信这是可以做到的——我只是没有正确地使用语法。有什么帮助吗?我认为与您正在尝试的内容最接近的是: with open(filename)

我试图使用
with
语法打开一个文件,同时也枚举文件的行

所以我试了一下:

with index, open(filename) as enumerate(f):
    f.read()...
其中
f
对应于
open(filename)
,而
index
应采用
enumerate(f)
。因此,我希望能够调用body中的
f.read()
,并知道正在处理文件的哪一行


我相信这是可以做到的——我只是没有正确地使用语法。有什么帮助吗?

我认为与您正在尝试的内容最接近的是:

with open(filename) as f:
    for index, line in enumerate(f):
        # Do stuff with each line.
f.read()

不能将
enumerate
调用与
with
语句组合,因为:

执行带有一个“项”的with语句的过程如下 如下:

  • 上下文表达式(with_项中给出的表达式)为 计算以获取上下文管理器

  • 将加载上下文管理器的
    \uuuuu exit\uuuu()
    ,以供以后使用

  • 将调用上下文管理器的
    \uuuu enter\uuu()
    方法

  • 如果with语句中包含
    目标
    ,则
    \uuuu enter\uuuu()已分配给它。


  • target
    是指将
    open(filename)
    的返回值指定给的变量。它不可能是一个函数调用。

    我认为与您正在尝试的内容最接近的是:

    with open(filename) as f:
        for index, line in enumerate(f):
            # Do stuff with each line.
    
    f.read()

    不能将
    enumerate
    调用与
    with
    语句组合,因为:

    执行带有一个“项”的with语句的过程如下 如下:

  • 上下文表达式(with_项中给出的表达式)为 计算以获取上下文管理器

  • 将加载上下文管理器的
    \uuuuu exit\uuuu()
    ,以供以后使用

  • 将调用上下文管理器的
    \uuuu enter\uuu()
    方法

  • 如果with语句中包含
    目标
    ,则
    \uuuu enter\uuuu()已分配给它。


  • target
    是指将
    open(filename)
    的返回值指定给的变量。这不可能是函数调用。

    您似乎把
    语句与
    for
    语句混淆了。在

    for i, x in enumerate(lst):
    
    i
    x
    设置为从
    enumerate
    创建的迭代器中获得的值。在

    with open(filename) as f:
    
    f
    被分配
    open
    的返回值

    你不能把两者混为一谈。您需要使用两个单独的语句:

    with open(filename) as f:
        for index, line in enumerate(f):
    

    您似乎混淆了
    语句以及
    for
    语句。在

    for i, x in enumerate(lst):
    
    i
    x
    设置为从
    enumerate
    创建的迭代器中获得的值。在

    with open(filename) as f:
    
    f
    被分配
    open
    的返回值

    你不能把两者混为一谈。您需要使用两个单独的语句:

    with open(filename) as f:
        for index, line in enumerate(f):