Python:如何根据函数的参数创建csv列?

问题描述 投票:0回答:1

我有一个函数,可以写入一个有列的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)

比如说,我们不需要改变列名 TickerName 手动,我想在函数中使用一个参数,以便:如果我需要列的 Ticker,我会执行 write_to_csv(Ticker). 如果我需要的是Name而不是Ticker,我会执行 write_to_csv(Name).

我想我面临的问题是调用引号中的参数。

python python-3.x
1个回答
0
投票

其实比你想的简单。

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)
© www.soinside.com 2019 - 2024. All rights reserved.