代码之家  ›  专栏  ›  技术社区  ›  duckman

Python:如何基于函数的参数创建csv列

  •  0
  • duckman  · 技术社区  · 5 年前

    我有一个函数,可以用一组列写入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 手动,我想在函数中使用一个参数,以便:如果我需要列 股票行情 ,我会执行 write_to_csv(Ticker) .如果我需要名字而不是股票代码,我会执行 write_to_csv(Name) .

    我认为我面临的问题是调用引号中的参数

    0 回复  |  直到 5 年前
        1
  •  0
  •   CaffeinatedMike    5 年前

    这其实比你想象的要简单。

    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)