【问题标题】:Printing in a for-loop alters list type?在 for 循环中打印会改变列表类型?
【发布时间】:2020-06-17 01:37:36
【问题描述】:

为什么不打印 txt 文件中的行?

f = open("myflie.txt", "r")

for x in range(len(f.readlines())):
    print(x, f.readlines()[x])

f.close()

它给了我

IndexError: 列表索引超出范围???

如果我输入了一个循环打印命令,例如:

print(f.readlines()[0])

它通常会打印文件的第一行。如果我继续更改 [i] 索引,它将重复相同的操作,但是如果我将打印行放在循环中,那么它会给我错误。请帮忙。

【问题讨论】:

    标签: loops printing readlines


    【解决方案1】:

    调用readlines() 会将文件描述符向前滚动到最后。

    所以再次调用readlines() 而不先回退文件描述符会返回一个空数组。

    【讨论】:

    • 如何倒带?
    • @ZlatkoCherepnalkoski:为什么不简单地将其保存到lines = readlines(),然后迭代lines???
    • name[k] = lines[i][len(lines[i])-5:] 这行给了我一个错误:IndexError: list assignment index out of range 为什么不发布他字符串的最后一部分从第 5 位开始?
    • 知道了... append 是合适的方法,而不是 "="
    猜你喜欢
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 2016-12-23
    • 2014-01-10
    • 2020-04-21
    • 1970-01-01
    相关资源
    最近更新 更多