python - Python:如何根据函数的参数创建 csv 列
问题描述
我有写入带有一组列的 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)
推荐阅读
- typescript - 这是一个有效的打字稿声明文件吗?
- sql - 如何查看我在 sql 中创建的表的列表
- django - Django 注释和 GROUP BY
- ios - IOS启动时如何区分通知是本地通知还是远程通知
- excel - Excel - 如何在每行中创建不同数量的列?
- ios - Swift 4 数组内置方法“min()”和“max()”是否适用于字符串数组?
- excel - 在 VBA 中执行脚本后退出 Cmd 窗口
- apache - Apache 服务器未在 webmin 上启动
- delphi - CreateProcess , WaitForSingleObject , 在调用应用程序时禁用输入
- php - 一旦表单的值在php的数据库中,如何使表单消失