Python: 有没有办法在调用 writerow() 之前更新 DictWriter 的键(列)?

Python: Is there a way to update the keys (columns) of a DictWriter before calling writerow()?

csv.Dictwriter 是这样实例化的:

 class csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)

fieldsnames 是一个键序列,或者在我的例子中是一个字典。

这是我的问题;在用某个字典实例化 DictWriter 之后,我希望在调用 writerow() 之前删除 fieldnames 的一些键(以及扩展的值)。由于我不会深入的原因,我只能告诉代码在 DictWriter 实例化后删除哪些键。 Dict 只有 3 个方法:

writerheader
writerow
writerows

.. none 其中有任何帮助。根据我的测试,似乎在 DictWriter 被实例化时,它根据 fieldnames 设置了 csv-to-be 的列名。实例化后对 fieldnames 所做的任何更改都不会影响将生成的列 headers。因为 DictWriter 在实例化时定义了列,所以我坚持使用这些列吗?或者有解决办法吗?

假设你有一个像这样的字典 -

d = {'a': 1, 'b': 2, 'c': 3, 'd': 4}

那么你可以使用csv.writer如下:

f = open('abc.csv', 'wb')
csv_writer = csv.writer(f, dialect=csv.excel, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)

for row in rows:
    csv_writer.writerow([row['b'], row['c'])  # Assuming we dont want keys 'a' and 'b' to be written
f.close()