You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Python sys.argv自定义导出CSV文件的名称

解决方案

你当前代码里的文件名是写死的固定字符串'dbname_result.csv',没有调用从命令行获取的dbname变量,只需将文件名改为动态拼接即可实现需求,有以下几种实现方式:

  • 方式1:使用f-string拼接(Python 3.6及以上版本推荐,可读性最高)
    将代码中打开文件的行修改为:
    f = open(f'{dbname}_result.csv', 'w')
    
  • 方式2:使用字符串加法拼接
    f = open(dbname + '_result.csv', 'w')
    
  • 方式3:使用format方法拼接
    f = open('{}_result.csv'.format(dbname), 'w')
    

优化后的完整代码示例(可选)

推荐使用with上下文管理器自动处理资源释放,不需要手动调用close()方法,避免异常时资源泄漏:

import pymssql
import csv
import sys

dbname = sys.argv[1]
# 用with管理数据库连接,自动关闭
with pymssql.connect(host='rds.amazonaws.com', user='asdf', password='asdf', database=dbname, charset='utf8') as conn:
    with conn.cursor() as curs:
        sql = "select * from usertable with(nolock);"
        curs.execute(sql)
        rows = curs.fetchall()
# 用with管理文件,自动关闭
with open(f'{dbname}_result.csv', 'w', newline='', encoding='utf-8') as f:
    wr = csv.writer(f)
    wr.writerows(rows)

补充说明:csv模块写入时建议加上newline=''参数,避免Windows系统下出现多余空行;查询类SQL不需要执行conn.commit(),仅数据修改类操作需要调用。

内容的提问来源于stack exchange,提问作者user1819769

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 01:09:03