添加列与cvs.wri公司

2024-10-01 09:33:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个脚本,可以打开一个cvs并再次写出它(使用不同的名称),而不需要一些我不需要的列。在

source = outname
    with open(source, "rb") as source:
        rdr = csv.reader(source)
        with open("import2SFDC.csv", "wb") as result:
            wtr = csv.writer(result, quoting=csv.QUOTE_ALL)
            for r in rdr:
                wtr.writerow((r[0], r[1], r[2], r[3], r[4], r[5], r[6], r[7], r[8], r[9], r[10],
                            r[12], r[13], r[14], r[16], r[17], r[18], r[19], r[20], r[21],
                            r[22], r[23], r[24], r[25], r[26], r[27], r[28], r[29], r[33],
                            r[35], r[36], r[37], r[38], r[39], r[40], r[42], r[43], r[44],
                            r[46], r[47], r[48], r[49], r[50], r[51], r[52], r[53], r[54],
                            r[56], r[57], r[60], r[61], r[63], r[70], r[81], r[82]))

到目前为止还不错。 现在我想添加一个标题为“SFDCID”的列。此列的值应始终(即在所有行中)为的值参数解析公司名称:

^{pr2}$

因此,我用SFDCID作为参数调用脚本,这需要作为一个列写入到结果csv文件中。在

我对python还很陌生,能够构建原始脚本仅仅是因为这里有很大的帮助,也许有人可以帮助我使用这个扩展?在

谢谢

安德烈


Tags: csv脚本名称source参数aswithresult
1条回答
网友
1楼 · 发布于 2024-10-01 09:33:29

您需要读取头,将额外的头附加到其中,然后写出新文件:

# These are the columns we will not write
skip = [11, 15, 30, 31, 32, 34, 41, 45, 55, 58, 59, 62]
skip += range(64, 70)
skip += range(71, 81)

with open('read.csv', 'r') as r, open('write.csv', 'w') as w:
    reader = csv.reader(r)
    writer = csv.writer(w, delimiter=',')
    header = next(reader)
    header.append('SFDCID') # Add the new column
    writer.writerow(header) # write out the new header
    for row in reader:
        new_row = [v for k,v in enumerate(row) if k not in skip]
        new_row.append('your value for SFDCID column')
        writer.writerow(new_row)

相关问题 更多 >