繁体   English   中英

在Python中将新列(及其数据)添加到多个CSV文件中

[英]Adding a new column (and data to it) into multiple CSV files in Python

我是Python的初学者,我一直在努力创建代码以将列添加到一组类似的csv文件中。

这是我到目前为止的内容:

import csv, os

for csvFilename in os.listdir('.'):
    if not csvFilename.endswith('.csv'):
        continue
    print('Editing file ' + csvFilname + '...')

    file = open(csvFilename)
    reader = csv.reader(file)
    writer = csv.writer(open('new_' + csvFilename, 'w'))
    headers = reader.next()
    headers.append('ColName')
    writer.write(headers)
    for row in reader:
        row.append(str(row[12]) + ' ' + str(row[13]) + " some text")
        writer.write(row)

基本上,我想添加一列,其中“ 行13的文本 + 行14的文本 + 更多文本,每次都相同 ”。

我在writer.write(headers)行上收到此错误消息,但是: AttributeError:'_csv.writer'对象没有属性'write'

我该怎么办?

您需要阅读API文档,

https://docs.python.org/3/library/csv.html

csv.writer写入功能使用了writerow而不是write ,请检查。

编写CSV文件的示例,

import csv
with open('eggs.csv', 'w', newline='') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=' ',
                            quotechar='|', quoting=csv.QUOTE_MINIMAL)
    spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
    spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])

我必须重构您的代码,但这应该与您想要实现的代码最接近。 您将需要进行异常处理并检查行中是否有超过13个元素,依此类推。

import tempfile, os, csv

for csvFilename in os.listdir('.'):
    if not csvFilename.endswith('.csv'):
        continue
    print('Editing file ' + csvFilename + '...')
    with open(csvFilename, 'r') as csvFile:
        reader = csv.reader(csvFile, delimiter=',', quotechar='"')
        with open('new_' + csvFilename, 'w') as tempfile:
            writer = csv.writer(tempfile, delimiter=',', quotechar='"')
            header = True
            for row in reader:
                if (header):
                    row.append('ColName')
                    writer.writerow(row)
                    header = False
                else:
                    row.append(str(row[12]) + ' ' + str(row[13]) + " some text")
                    writer.writerow(row)

有关python csv的更多信息: https : //docs.python.org/3/library/csv.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM