【问题标题】:How to delete a specific line in text file python using indices?如何使用索引删除文本文件python中的特定行?
【发布时间】:2014-04-01 06:33:55
【问题描述】:

例如,我有这个文本文件:subj.txt,它包含以下文本(主题|时间)

astro1|1:00-2:00
act2|2:00-3:00
speech1|4:00-5:00

顺便说一句,我正在使用 tkinter 创建一个 gui。单击按钮时,将出现一个带有文本输入的窗口,程序将要求用户输入要删除的课程。因此,当用户选择 astro1 并单击按钮时,astro1 将在文本文件中删除,ac2 和语音 2 将上升。那代码是什么?

例如,我有一个名为 self.courseent 的输入框,并且我在下面有一个按钮功能:

f=open("subj.txt",'r') 
  for x in f:
   a=x.split('|') 
   if self.courseent.get()==a[0]: 
     #the line where the a[0] will be deleted

【问题讨论】:

  • 这个post可以帮助你。
  • 是的,这篇文章接近解决方案,但在我的代码中,我将整行拆分为管道,并且很难使用 if a[0] != x 条件。使用上面的代码,怎么删除呢?
  • 你不能删除,正如帖子所说,正如@Luc DUZAN所说,你应该将它复制到一个列表中,根据旅游条件从列表中删除,然后将其写入文件。

标签: python file text tkinter


【解决方案1】:

你的问题看起来很像这个问题:

How to delete a line from a text file in C#?

实际上,文件不允许您简单地从文件中删除一行。 您需要做的是将内存中的所有文件作为列表读取,从列表中删除该行并以写入模式重新打开文件并重写所有内容。 如果您的文件太大而无法加载到内存中,您应该写入另一个文件,然后将您的临时文件复制到您的文件中。

https://docs.python.org/2/library/tempfile.html

【讨论】:

    猜你喜欢
    • 2020-03-05
    • 1970-01-01
    • 2021-03-11
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    相关资源
    最近更新 更多