【发布时间】:2019-10-06 20:49:51
【问题描述】:
我需要检查我正在使用的 .csv 文件是否以超过 1 个 "\n" 行结尾。如果它发现多于一个空行,则将它们全部删除,只留下一个。
我的代码是:
import os
from pathlib import Path
def remove_blanks():
dirname = os.path.dirname(os.path.abspath(__file__))
path: Path = Path(os.path.join(dirname, "data.csv"))
with open(path, "r+") as op:
lines = op.readlines()
for line in lines:
if line == "\n":
op.write(line.rstrip("\n"))
.csv 文件类似于['01-01-2019,0,0,0\n', '18-05-2019,33,31,48\n', '\n', '\n', '\n'],我想要的输出是['01-01-2019,0,0,0\n', '18-05-2019,33,31,48\n', '\n'],但它似乎无法删除任何行。
【问题讨论】:
-
您想从 any 序列中删除多余的空行,还是只删除文件末尾的空行? (这会有所不同,因为在您真正到达文件末尾之前,您不会知道序列出现在文件末尾,因此您无法决定写入或立即跳过。)
-
@chepner 我只对文件末尾感兴趣。