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

撤消文件readline()操作,使文件指针恢复到原始状态

郑曜灿
2023-03-14
问题内容

我正在使用file.readline()以只读模式浏览文本文件的Python文件指针,以查找特殊行。找到该行后,我想将文件指针传递给一个方法,该方法期望文件指针位于该读取行的开始位置(而不是紧随其后)。

我如何实质上撤消对文件指针的一个file.readline()操作?


问题答案:

您必须通过file.tell()在阅读行之前致电,然后致电file.seek()倒带来记住位置。就像是:

fp = open('myfile')
last_pos = fp.tell()
line = fp.readline()
while line != '':
  if line == 'SPECIAL':
    fp.seek(last_pos)
    other_function(fp)
    break
  last_pos = fp.tell()
  line = fp.readline()

我不记得在循环file.seek()内调用是否安全,for line in file因此我通常只写出while循环即可。可能有更多的Python方式可以做到这一点。



 类似资料:
  • 本文向大家介绍Git 撤销操作、删除文件和恢复文件,包括了Git 撤销操作、删除文件和恢复文件的使用技巧和注意事项,需要的朋友参考一下 大致介绍 经过前面的学习,已经建立了版本库,并上传了文件,这次来学习对这些文件进行基本的操作,即:     ◆ 撤销操作     ◆ 删除文件     ◆ 恢复文件 我在此之前,已经将三个文件提交到了版本库 撤销操作 撤销操作的语法: git checkout -

  • 你可以使用复制任务( Copy )去复制文件. 复制任务扩展性很强,能够过滤复制文件的内容, 映射文件名. 使用复制任务时需要提供想要复制的源文件和一个目标目录,如果你要指定文件被复制时的转换方式,可以使用 复制规则. 复制规则被 CopySpec 接口抽象,复制任务实现了这个接口. 使用 CopySpec.from() 方法指定源文件.使用 CopySpec.into() 方法指定目标目录. 例

  • Rust通过限制智能指针的行为保障了编译时安全,不过仍需要对指针做一些额外的操作。 *const T和*mut T在Rust中被称为“裸指针”。它允许别名,允许用来写共享所有权的类型,甚至是内存安全的共享内存类型如:Rc<T>和Arc<T>,但是赋予你更多权利的同时意味着你需要担当更多的责任: 不能保证指向有效的内存,甚至不能保证是非空的 没有任何自动清除,所以需要手动管理资源 是普通旧式类型,也

  • 在任何一个阶段,你都有可能想要撤消某些操作。 这里,我们将会学习几个撤消你所做修改的基本工具。 注意,有些撤消操作是不可逆的。 这是在使用 Git 的过程中,会因为操作失误而导致之前的工作丢失的少有的几个地方之一。 有时候我们提交完了才发现漏掉了几个文件没有添加,或者提交信息写错了。 此时,可以运行带有 --amend 选项的提交命令尝试重新提交: $ git commit --amend 这个

  • 如果你有其他想法,请分享 谢了!

  • {% tabs first=”SDK 1.1.2 及以上版本”, second=”SDK 1.1.2 以下版本” %} {% content “first” %} SDK 1.1.2 及以上版本 实例化一个 wx.BaaS.File 对象,以下操作都是在该对象上进行操作,如下进行实例化: let MyFile = new wx.BaaS.File() 文件上传 MyFile.upload(file