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

时间:2017-07-25 03:41:06

标签: python csv

我是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'

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您需要阅读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'])

答案 1 :(得分:0)

我必须重构您的代码,但这应该与您希望实现的最接近。您需要进行异常处理并检查行中是否有超过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