我有一个函数,可以写入一个有列的csv文件。每当我想改变一些列名时,我必须进入我的代码中手动改变它。我怎样才能把列名作为参数输入,然后它就会改变其他的列名?
我现在的代码。
def write_to_csv():
data_writer = csv.DictWriter(open('output.csv', 'w', encoding='utf-8', newline=''), fieldnames=['fund', 'Ticker', 'Price, 'Date'])
data_writer.writeheader()
for row in input_file:
data_writer.writerow({'fund': fund, 'Ticker': row[0].value, 'Price': row[1].value, 'Date': row[2].value)
比如说,我们不需要改变列名 Ticker
到 Name
手动,我想在函数中使用一个参数,以便:如果我需要列的 Ticker
,我会执行 write_to_csv(Ticker)
. 如果我需要的是Name而不是Ticker,我会执行 write_to_csv(Name)
.
我想我面临的问题是调用引号中的参数。
其实比你想的简单。
def write_to_csv(column_variant='Ticker'):
# Use a with block so the file auto-closes
with open('output.csv', 'w', encoding='utf-8', newline='') as csv_file:
data_writer = csv.DictWriter(csv_file, fieldnames=['fund', column_variant, 'Price, 'Date'])
data_writer.writeheader()
for row in input_file:
data_writer.writerow({'fund': fund, column_variant: row[0].value, 'Price': row[1].value, 'Date': row[2].value)