gpt4 book ai didi

python - 从文本文件中删除空白行

转载 作者:行者123 更新时间:2023-11-30 22:53:24 34 4
gpt4 key购买 nike

我正在尝试从文本文件中删除空白行,所以如果我有例如:

line 1
line 2

line 3


line 4
line 5

处理文件后的结果应如下所示:

line 1
line 2
line 3
line 4
line 5

我搜索了堆栈溢出,这是我到目前为止得到的结果:

with open('file.txt', 'r+', encoding='utf-8') as file:
for line in file:
if line.strip():
file.write(line)

除了一点点不方便外,这一切都很完美;结果不是用新内容替换原始内容,而是附加到文件末尾,如下所示:

line 1
line 2

line 3


line 4
line 5line 1
line 2
line 3
line 4
line 5

我的问题是,有什么方法可以在没有外部存储的情况下在 for 循环内解决这个问题(将结果存储在文件或列表中并将其写回文件)?或者如果有更好的方法请分享。

我希望我的问题很清楚,谢谢。

最佳答案

这是一个可以实现您正在寻找的功能的工作示例。我不确定这里的性能,但可以肯定它不使用内存或临时文件

writebytecount = 0
readbytecount = 0
with open('file2.txt', 'r+') as file:
while 1:
line = file.readline()
if not line: break
readbytecount = file.tell()
file.seek(writebytecount)
file.write(line)
if len(line.strip()) != 0:
writebytecount += len(line)+1
file.seek(readbytecount)
file.seek(writebytecount)
file.truncate(writebytecount)
file.close()

关于python - 从文本文件中删除空白行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38210434/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com