当前位置: 首页 > 面试题库 >

Python拒绝多次遍历文件中的行[重复]

方航
2023-03-14
问题内容

这个问题已经在这里有了答案

第二次遍历文件不起作用 (4个答案)

去年关闭。

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

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()


 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 第二次遍历文件不起作用 (4个答案) 去年关闭。 我有一个文件,其中某些名称逐行列出。 现在,我试图遍历这些内容,但是我无法这样做。 file.readlines()将文件的行打印为列表。所以我得到这个: 但是,当我遍历此列表时,我无法这样做。 另外,当我将其分配给倒数第二行中的变量“ topology_list”并打印时。它给了我一个空的清单。 所以我

  • 问题内容: 我对文件进行迭代有问题。这是我在解释器上键入的内容和结果: 当我尝试再次遍历同一个打开的文件时,我什么也没得到! 根本没有输出。为了解决这个问题,我必须对文件进行编辑,然后再次将其打开以进行读取!那是正常行为吗? 问题答案: 是的,这是正常行为。基本上,你是第一次读取文件的末尾(可以像读取磁带一样对它进行图片处理),因此除非你使用重定位到文件开头的位置进行重置,否则你将无法从文件中读取

  • 问题内容: 我有一个带有一些十六进制数字的文本文件,我正在尝试将其转换为十进制。我可以成功转换它,但似乎在循环存在之前它会读取一些不需要的字符,因此我遇到了以下错误。 我的代码如下 每个十六进制数字都在新行中输入 问题答案: 追溯表明文件末尾可能有一个空行。您可以这样解决: 另一方面,最好使用代替。不要忘记关闭文件,或者更好地使用该文件来关闭它们:

  • 本文向大家介绍python中遍历文件的3个方法,包括了python中遍历文件的3个方法的使用技巧和注意事项,需要的朋友参考一下 今天写一个在windows下批量修改文件名的python脚本,用到文件的遍历。用python进行文件遍历有多种方法,这里列举并说明一下。 os.path.walk() 这是一个传统的用法。 walk(root,callable,args)方法有三个参数:要遍历的目录,回调

  • 问题内容: 我试图遍历并拾取目录中的文件,但是在实现它时遇到了一些麻烦。如何提取多个文件,然后将它们移动到另一个文件夹? 问题答案: 带回调的旧答案 您想要使用fs.readdir函数获取目录内容,并使用fs.rename函数实际执行重命名。如果您 需要 等待它们完成之后再运行代码,则这两个函数都具有同步版本。 我写了一个快速脚本来完成您所描述的。 在我的本地机器上测试。 更新:fs.promis

  • 层次遍历 给定二叉树的包含虚结点的先序遍历序列信息,按层次顺序给出遍历的结果。 输入格式: 首先输入一个整数T,表示测试数据的组数,然后是T组测试数据。每组测试数据在一行中输入一个字符串(不含空格且长度不超过80),表示二叉树的先序遍历序列(其中@表示虚结点)。 输出格式: 对于每组测试,输出层次遍历的结果。 输入样例: 1 ABD@@EG@@@C@F@@ 输出样例: ABCDEFG 代码长度限制