有没有删除python中的行的想法



所以,我有这个问题,下面的代码将删除文本文件中的第三行。

with open("sample.txt","r") as f:
lines = f.readlines()
del lines[2] 
with open("sample.txt", "w+") as f2:
for line in lines:
f2.write(line)

如何删除文本文件中的所有行?

如果你想有一个空文件,为什么要使用循环?

f = open("sample.txt", "r+") 
f.seek(0) 
f.truncate() 

这将清空内容而不删除文件!

我想你需要这样的

import os
def delete_line(original_file, line_number):
""" Delete a line from a file at the given line number """
is_skipped = False
current_index = 1
dummy_file = original_file + '.bak'
# Open original file in read only mode and dummy file in write mode
with open(original_file, 'r') as read_obj, open(dummy_file, 'w') as write_obj:
# Line by line copy data from original file to dummy file
for line in read_obj:
# If current line number matches the given line number then skip copying
if current_index != line_number:
write_obj.write(line)
else:
is_skipped = True
current_index += 1
# If any line is skipped then rename dummy file as original file
if is_skipped:
os.remove(original_file)
os.rename(dummy_file, original_file)
else:
os.remove(dummy_file)

最新更新