从文件中就地删除一行

2024-06-23

我有一个 .txt 文件,我想要一个 python 脚本来用它做一些事情。

我的 .txt 看起来像这样:

  • 27b23815-4cbb-dfae-3e6d-38f67ec4266e
  • 81a090bd-8973-bc37-5c7b-dc1a18e8ddee
  • 7e1bf596-88bc-d8fd-9aea-278d5c689eaa
  • 0b365fb0-dea4-53a1-fd27-6cbf9721602c
  • 1c317dcf-73f4-edf5-b6a1-ad663d2b507e
  • 6db8342d-1afb-2777-1a7f-a5daad06d2db

如果第六行写了一些内容,我想删除 .txt 的第一行,但不会从旧的 .txt 中创建新的。不太明白这个:(

我知道我可以删除第一行:

       lines = file(idpath, "r").readlines()  
       del lines[0]  
       file(idpath,"w").writelines(lines) 

将不胜感激任何帮助


由于文件范例是一个(可调整大小的)字节数组,因此您不能简单地从内部删除数据。相反,您可以执行以下任一操作:

  • 将要删除的片段后面的所有数据向后滑动覆盖,然后调整文件大小
    (老式的,通常与内存映射文件一起使用,或者当您买不起数据的另一个副本时)
  • 将所有结果数据写入一个新文件,然后将其移至旧文件上
    (典型的批处理,因为move在同一文件系统中是原子的和即时的,即使文件被其他东西打开,也可以工作(取决于操作系统),并且您可以在应用更改之前检查结果)
  • 将需要保留的所有数据读取到内存中,然后将文件截断为零字节并写入新数据
    (对于文本编辑器来说是典型的。该文件无法打开以供其他文件写入,并且当您截断它时,旧内容就会丢失。OTOH,您不需要创建另一个文件并覆盖此文件的权限)

对于列表操作,RTM序列类型 https://docs.python.org/2/library/stdtypes.html#typesseq.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从文件中就地删除一行 的相关文章

随机推荐

  • 从流中获取文本阅读器?

    我正在尝试读取嵌入的文本文件System Reflection Assembly GetExecutingAssembly GetManifestResourceStream resource 但它给了我一个Stream 嵌入的资源是一个文
  • 如何在 Bash 脚本中回答“是”

    有一个快速的问题 想象一下我有这样的代码 mkdir p INSTALLDIR sudo apt get install y git clojure leiningen git clone git github com maltoe sto
  • 指令级并行性探索

    我只是想知道是否有任何有用的工具可以让我在某些算法中利用指令级并行性 更具体地说 我有一个子集 来自多媒体领域的算法 我想知道利用 ILP 的最佳方法是什么 在这个算法中 所有这些算法都是用 C 语言实现的 所以理想情况下 我将这些算法作为
  • Scala 将字符串转换为映射

    转换这个最快的方法是什么 a ab b cd c cd d de e ef f fg 进入 scala 中的可变映射 我从 500MB 文件中读取了这个输入字符串 这就是我关心速度的原因 如果您的 JSON 像您的示例一样简单 即一系列键
  • 将参数传递给 Scala 对象

    是否可以从外部对象初始化 Scala 对象 我尝试初始化的 Scala 对象没有任何 Companion 类 这是一个例子 object ObjectA val mongoDBConnectionURI This is the Val th
  • python 视频捕获循环

    我编写了一个简单的脚本来连续从网络摄像头捕获快照 我唯一的问题是视频捕获模块并不总是捕获图像 这反过来又导致程序崩溃 我认为我可以通过使用无限循环来解决这个问题 但我不确定如何解决 这是脚本 from VideoCapture import
  • 文件转换任务无法转换压缩包上的 XML 配置

    我正在开发发布管道 它将对应用程序服务工作线程配置执行转换 然后发布工作线程 Web 应用程序 我的输入包是由 MsBuild 发布 来自 ASP NET 构建管道 生成的 zip 包 PackageTmp app data jobs tr
  • Rails - 查找或创建 - 有查找或构建吗?

    我目前正在使用 XXX find or create by uuid XXXX 有没有办法进行查找或构建 Try XXX find or initialize by uuid XXXX
  • TypeScript 中的无渲染 Vue 组件

    我有一个 JavaScript 中的无渲染组件 我正在尝试将其转换为 TypeScript 我在声明时遇到错误render函数在一个Vue extend ed 组件 method ComponentOptions
  • 在 Python 中删除 root 权限

    我想让一个Python程序开始侦听端口80 但之后执行时无需root权限 有没有办法放弃 root 或在没有 root 的情况下获取端口 80 如果没有 root 权限 您将无法在端口 80 上打开服务器 这是对操作系统级别的限制 因此 唯
  • 如何在 C++ 中强制包含静态库中的静态对象 (MSVC 11)

    我试图在 C 文件中初始化一个静态对象 该文件试图在其构造函数中将类自动注册到工厂 就像任何标准自动注册问题一样 问题是 它被编译为静态库 并且在链接到可执行文件时被优化掉 应该有一个非常简单的解决方案 但令人惊讶的是 看起来并不那么简单
  • 如何在 Echo Alexa 卡片中显示超链接

    如何在 Echo Alexa 卡中显示超链接 即与 Echo 通话后在 Alexa 应用程序中显示的卡 我知道它包含在 lambda 函数返回的响应中 但找不到除https developer amazon com public solut
  • 如何重置 table.DefaultView.RowFilter?

    下面的代码工作正常并正确过滤行 但是我如何将表恢复到原始状态 DataTable table this dataGridView1 DataSource as DataTable table DefaultView RowFilter co
  • 性能:Matlab 与 Python

    我最近从Matlab to Python 在转换我的一个冗长代码时 我惊讶地发现Python非常慢 我分析并追踪了一个函数占用时间的问题 该函数是从我的代码中的各个位置调用的 作为递归调用的其他函数的一部分 探查器建议300两个地方都调用了
  • 生成 PHP 代码(从解析器令牌)

    是否有任何可用的解决方案用于 重新 生成 PHP 代码解析器令牌 http www php net manual en tokens php由返回token get all http www php net manual en functi
  • 我应该声明变量尽可能接近它们将使用的范围吗?

    锐锐通常会建议我这样做 而我仍在寻找这样做的充分理由 我想到的唯一一件事是 声明它更接近它将使用的范围 可以避免在某些不必要的情况下初始化它 因为条件等 与此相关的事情如下 int temp foreach var x in collect
  • 应用程序“”未配置为多租户应用程序

    我正在尝试开发单租户应用程序 但登录时收到以下错误消息 应用程序 应用程序 ID 未配置为多租户应用程序 2018 年 10 月 15 日 之后创建的此类应用程序不支持使用 common 端点 使用特定于租户的端点或配置应用程序成为多租户
  • 如何初始化派生类中的静态成员?

    嗯 显然 我不能 但这是我的问题 也许这是一个设计问题 我把整个事情搞错了 我希望在每个派生类中以不同的方式初始化类成员 想象我有一个类型的对象Device This Device只是应用程序代码使用的接口 因为实际设备只是两种类型之一 D
  • IBAN 验证器 Swift

    我正在编写一种算法来验证 Swift 3 中的 IBAN 国际银行帐号 但无法计算其中一个验证 IBAN 示例 BE68539007547034 以下是验证规则 输入数字的长度应为 16 前 2 个字符是国家 地区代码 不是数字 最后 14
  • 从文件中就地删除一行

    我有一个 txt 文件 我想要一个 python 脚本来用它做一些事情 我的 txt 看起来像这样 27b23815 4cbb dfae 3e6d 38f67ec4266e 81a090bd 8973 bc37 5c7b dc1a18e8d