首页  >  文章  >  后端开发  >  如何修复向 CSV 文件添加新列时跳行的 Python 脚本?

如何修复向 CSV 文件添加新列时跳行的 Python 脚本?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-21 21:03:30376浏览

How to Fix Python Script that Skips Lines When Adding a New Column to CSV Files?

如何在 Python 中向 CSV 文件添加新列

问题描述

您有多个包含如下数据的 CSV 文件:

Name        Code
blackberry  1
wineberry   2
rasberry    1
blueberry   1
mulberry    2

您想要向所有这些文件添加一个名为“Berry”的新列,以便输出如下所示:

Name        Code    Berry
blackberry  1   blackberry
wineberry   2   wineberry
rasberry    1   rasberry
blueberry   1   blueberry
mulberry    2   mulberry

但是,您当前的 Python 脚本无法正常工作。它会跳过每一行并仅使用值“Berry”填充新列。

解决方案

要解决此问题,您需要修改代码以使用 next() 函数而不是row0 = r.next() (对于 Python 3,使用 reader = csv.reader(csvinput))。更新后的代码:

<code class="python">import csv

with open('C:/test/test.csv', 'r') as csvinput:
    with open('C:/test/output.csv', 'w') as csvoutput:
        writer = csv.writer(csvoutput, lineterminator='\n')
        reader = csv.reader(csvinput)

        all = []
        row = next(reader)
        row.append('Berry')
        all.append(row)

        for row in reader:
            row.append(row[0])
            all.append(row)

        writer.writerows(all)</code>

注释:

  • 行终止符参数设置为 'n' 以避免输出文件中出现双倍间距。
  • 列表用于附加所有行并使用 writerow 一次性写入它们。这可能不适合非常大的文件。
  • 两个 with open 语句可以嵌套在同一行,就像 open('C:/test/test.csv','r') as csvinput, open('C:/test/output.csv', 'w') as csvoutput:.

以上是如何修复向 CSV 文件添加新列时跳行的 Python 脚本?的详细内容。更多信息请关注PHP中文网其他相关文章!

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