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

标签 python csv

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/

相关文章:

php - 如何使用 php 替换 CSV 文件中一行中的 1 个值?

Python csv : Split column to columns and then to rows by delimiter

python - 分配字典键和值时出现 KeyError

python - 架构 - 能够在 Django 中更改电子邮件地址(主要用户 ID)

Python变量命名约定

python - 向后关系如何与 Django 查询集配合使用

Python 编码问题(可能是从 windows 到 linux 的问题)

php - 从服务器下载 CSV 文件

python - 使用 python 保存和绘制多个数据集

python - 我们从 prs.slides[4].shapes[3].width 得到的数字的单位是什么,其中 prs 是 python-pptx 中的演示对象?