代码之家  ›  专栏  ›  技术社区  ›  Aminadav Glickshtein

为什么我不能手动调用“file”迭代器上的“next”?[副本]

  •  0
  • Aminadav Glickshtein  · 技术社区  · 7 年前

    这是我的Python代码。如果线路有 : 我想跳过这一行 下一行 . 我想用 file.next 自从 file 是迭代器。为什么不起作用?

    file=open("example.txt","r") //output of ls -R
    
    currentDirectory=""
    for line in file:
        if ":" in line:
            currentDirectory=line[:-1]
            file.next() # Error in this line
            continue
        A=line.split()
        print(A)
        print(len(A))
        print('insert into files set name=${name}, inode=${inode}, isDir=${isDir},size=${size}'
        .format(inode=A[0],name=A[9],isDir="d" in A[1],size=A[5]))
    

    错误:

    Traceback (most recent call last):
      File "ls-to-sql.py", line 7, in <module>
        file.next()
    AttributeError: '_io.TextIOWrapper' object has no attribute 'next
    

    我相信还有很多其他方法可以实现同样的逻辑。问题是:为什么这不起作用。如果有其他迭代方法来解决它。

    0 回复  |  直到 7 年前