Python 拒绝多次遍历文件中的行

标签 python

<分区>

我正在编写一个程序,需要我多次遍历文件的每一行:

loops = 0
file = open("somefile.txt")
while loops < 5:
    for line in file:
        print(line)
    loops = loops + 1

为了简洁起见,我假设我总是需要遍历一个文件并每行打印 5 次。该代码与我在我的程序中实现的较长版本存在相同的问题:该文件仅迭代一次。之后 print(line) 文件什么都不做。这是为什么?

最佳答案

这是因为 file = open("somefile.txt") 行只出现一次,在循环之前。这将创建一个指向文件中一个位置的光标,因此当您到达第一个循环的末尾时,光标位于文件的末尾。将其移入循环:

loops = 0
while loops < 5:
    file = open("somefile.txt")
    for line in file:
        print(line)
    loops = loops + 1
    file.close()

关于Python 拒绝多次遍历文件中的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46508509/

相关文章:

python - 如何使用 pip 更新 Python 标准库包?

python - 将具有日期时间值的列转换为每周的列

python - 访问用户模型外键

python - 转换 Dataframe 列以解决 TypeError Cannot be hashed

python - cur.executemany 在字符串格式化期间并非所有参数都已转换

python - 将列标题转换为值

python - 文本:更改值后 UI 未更新

python - 从 python 函数返回 dict 项

python - 有没有办法查看由 django 上的 bulk_create 执行的原始 SQL?

Python bigquery - ImportError : No module named google. 应用程序