替换csv标头,而不删除其他行

时间:2018-07-22 08:48:52

标签: python python-3.x csv

我要替换cvs文件text.csv的标题行。

header_list = ['column_1', 'column_2', 'column_3']

标题看起来像这样;

column_1, column_2, column_3

这是我的代码;

import csv
with open('text.csv', 'w') as csvfile:
    writer = csv.writer(csvfile)
    writer.writerow(header_list)

csv文件的标题已正确替换。但是,csv文件中的其余行已删除。如何只替换标题,而保留其他行不变?

我正在使用python v3.6

2 个答案:

答案 0 :(得分:3)

这是使用subprojects { plugins.withId('java', { _ -> sourceSets { integTest { java.srcDir file('src/integration-test/java') resources.srcDir file('src/integration-test/resources') compileClasspath = sourceSets.main.output + configurations.integTest runtimeClasspath = output + compileClasspath } } }) } 模块的正确方法。
csv将csv文件的内容读入字典列表。它带有一个可选的csv.DictReader参数,如果设置了该参数,则会应用自定义标头,并忽略原始标头,并将其视为数据行。因此,您所需要做的就是阅读您的csv fieldnames复制文件,并用csv.DictReader写入数据。您将必须删除csv.DictWriter中的第一行,因为它包含旧的标头并写入新的标头。不过,将新数据写入单独的文件确实很有意义。

reader

答案 1 :(得分:2)

使用此:

import csv
header_list = ['column_1', 'column_2', 'column_3']
mystring = ",".join(header_list)
def line_prepender(filename, line):
    with open(filename, 'r+') as csvfile:
        content = csvfile.read()
        csvfile.seek(0, 0)
        csvfile.write(line.rstrip('\r\n') + '\n' + content)

line_prepender("text.csv", mystring)