gpt4 book ai didi

python - 删除 CSV 文件中的最后一个空行

转载 作者:太空宇宙 更新时间:2023-11-03 16:17:05 25 4
gpt4 key购买 nike

nf=open(Output_File,'w+')
with open(Input_File,'read') as f:
for row in f:
Current_line = str(row)
Reformated_line=str(','.join(Current_line.split('|')[1:-1]))
nf.write(Reformated_line+ "\n")

我正在尝试读取表格格式的输入文件并将其写入 CSV 文件,但我的输出还包含最后一个空行。如何删除 CSV 中最后一个空行?

最佳答案

听起来您的输入文件中有一个空行。从您的评论来看,您实际上有一个非空行,其中没有 | 字符。无论哪种情况,检查结果行是否为空都很容易。

试试这个:

#UNTESTED
nf=open(Output_File,'w+')
with open(Input_File,'read') as f:
for row in f:
Current_line = str(row)
Reformated_line=str(','.join(Current_line.split('|')[1:-1]))
if Reformatted_line:
nf.write(Reformated_line+ "\n")

其他说明:

  • 您应该一致地使用with。以相同的方式打开这两个文件。
  • str(row) 是一个无操作。 row 已经是一个 str。
  • str(','.join(...)) 同样是多余的。
  • open(..., 'read') 不是 open() 模式参数的有效使用。您应该使用 r 甚至完全省略该参数。
  • 我不想在更改现有数据的格式时引入新名称。也就是说,我更喜欢 row = row.split() 而不是 Reformatted_line = row.split()

这是一个包含这些和其他建议的版本:

with open(Input_File) as inf, open(Output_File, 'w+') as outf:
for row in inf:
row = ','.join(row.split('|')[1:-1])
if row:
outf.write(row + "\n")

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

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