首页  >  文章  >  后端开发  >  如何向 CSV 文件添加新列并保留现有值?

如何向 CSV 文件添加新列并保留现有值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-21 21:12:02406浏览

How to Add a New Column to a CSV File Preserving Existing Values?

向 CSV 文件添加新列

本文解决了向多个 CSV 文件添加新列的问题,这些 CSV 文件存在于一个格式包含两个标记为“名称”和“代码”的现有列。所需的输出是添加名为“Berry”的第三列,并使用“Name”值填充其值。

使用 csv 库的初始 Python 脚本尝试将“Berry”值附加到每一行,但遇到错误,仅新列填充了“Berry”值。

解决方案

答案部分中提供的推荐代码提供了全面的解决方案:

  • 从输入 CSV 文件中读取第一行并将标题“berry”附加到其中。
  • 迭代剩余的行并将第一个值(名称)附加到每个行row。
  • 将所有修改的行写入输出 CSV 文件。

实现

这是一个基于以下内容修改和改进的 Python 脚本提供的解决方案:

<code class="python">import csv

with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
    reader = csv.reader(infile)
    header = next(reader)
    header.append('Berry')
    writer = csv.writer(outfile)
    writer.writerow(header)

    for row in reader:
        row.append(row[0])
        writer.writerow(row)</code>

此脚本成功将新的“Berry”列附加到每行,并填充相应的“Name”值。

其他注意事项

  • 请注意,Python csv 库中的默认行终止符是“rn”,这可能会导致输出文件中出现双倍间距。要指定不同的行终止符,请在 CSV 文件写入过程中使用 lineterminator 参数。
  • 考虑使用列表来存储所有修改的行,并使用 writerows 将它们写入一次操作中。这种方法对于大文件来说效率更高。
  • with 语句可以在一行中对多个文件使用,如下例所示:

    <code class="python">with open('input.csv', 'r') as infile, open('output.csv', 'w') as outfile:
      # file operations</code>

以上是如何向 CSV 文件添加新列并保留现有值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn