【问题标题】:How to get the updated csv file after deleting blank rows?删除空白行后如何获取更新的csv文件?
【发布时间】:2021-01-28 10:51:31
【问题描述】:

我有许多完整的空白行的 csv 文件。

第 1 步:我按照此链接中的第一个答案 Delete blank rows from CSV? 删除空白行。此链接中的代码是

with open(in_fnam) as in_file:
    with open(out_fnam, 'w') as out_file:
        writer = csv.writer(out_file)
        for row in csv.reader(in_file):
            if row:
                writer.writerow(row)

我的 csv 文件名为 "Profit.csv"。我的代码是这样写的

with open("Profit.csv") as in_file:
    with open("Profit_1.csv", 'w') as out_file:
        writer = csv.writer(out_file)
        for row in csv.reader(in_file):
            if row:
                writer.writerow(row)

第 2 步:然后我检查了 "Profit_1.csv" 中的缺失值和空白行,但它们与 "Profit.csv" 中的缺失值和空白行相同

问题:删除空白行后,我现在应该怎么做才能获取更新的 csv 文件?提前致谢!

【问题讨论】:

  • 这能回答你的问题吗? Delete blank rows from CSV?
  • 没有。我已经在此链接中阅读了答案。我相信这有助于删除原始 csv 文件中的空白行,但我不知道获取更新的 csv 文件(带有空白行的文件)。
  • 在链接的第一个答案中,有一行 with open(out_fnam, 'w') as out_file 我相信它将输出写入由变量 out_fnam 命名的文件。您是否检查过是否有任何新文件正在保存?
  • 我检查了几次,但 out_fnam 的缺失值与 in_fnam 相同。看来它们是同一个文件,或者可能是我做错了什么。
  • 我明白了。如果您编辑问题并添加您尝试过的内容,并添加您正在使用的修改/完整代码,那么有人可以更好地帮助您:)

标签: python csv


【解决方案1】:

CSV 文件中的空行将生成一个 row 对象,该对象是许多空字符串 (['','','','','']) 的列表。在这种情况下,if row: 返回True

改变

if row:

if any(row):

为了删除仅由空字符串组成的行。

【讨论】:

  • 我刚刚这样做了,但是所有缺失的值都消失了。但是所有值都变为“NaN”,所有列的名称变为“Unnamed:0, Unnamed:1, ect”
  • 啊,当然,我的解决方案是低音回馈……请再试一次
  • 另外,不要忘记使用正确的方法打开 CSV 文件(请参阅docs)。一世。 e.使用 newline='' 参数 - 否则您可能会遇到包含嵌入换行符的 CSV 文件的问题。
  • 非常感谢,蒂姆。我相信问题现在已经解决了。
【解决方案2】:

我认为您需要在第 1 步和第 2 步之间关闭文件

【讨论】:

  • 我稍微修改了这个问题。你能再看看我的问题并给我评论吗?谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-24
相关资源
最近更新 更多