【发布时间】:2014-07-24 06:03:15
【问题描述】:
我有一个制表符分隔的 txt 文件。
我想删除第 n 行制表符分隔的 txt。
我会分配喜欢
n = 1
然后程序将只删除文件的第一行。
如果程序在没有读取整个输入文件的情况下执行此操作,那就太棒了。
我试图从我之前的一个问题中学习:
Concatenate tab-delimited txt files vertically
这个问题是垂直连接两个制表符分隔的 txt 文件。所以我认为扭转这个过程会对我做类似的事情。但我找不到怎么做。
我还尝试了许多其他 stackoverflow 答案。
但它们大多是“删除具有特定短语的行”而不是“删除第 n 行”
(How to delete a line from a text file using the line number in python, Deleting a specific line in a file (python), Deleting a line from a file in Python)
【问题讨论】:
-
除非行长度相同,否则读取所有行并打印除您要删除的行之外的所有行。
-
@tripleee 尽管该问题的标题说使用行号删除,但该问题实际上并非如此。该问题明确指定“phrase = 'the dog barked'”并删除带有该短语的行。
-
@tripleee 输入文件的行长度相同。换句话说,所有行都有相同的列数。那么是否可以不读取所有行并删除第n行?
-
然后可以通过寻找特定的偏移量并重写文件来更有效地做到这一点。但是,除非您可以使用虚拟记录(或真实的数据记录)重写并保持文件的其余部分完好无损,否则我认为这不值得。