如何使用 python sys.argv

how to use python sys.argv

如何使用pythonsys.argv

我想把结果留成我想要的文件名。

import pymssql
import csv
import sys

dbname = sys.argv[1]
conn = pymssql.connect(host='rds.amazonaws.com', user='asdf', password='asdf', database= dbname, charset='utf8')
curs = conn.cursor()
sql = "select * from usertable with(nolock);"
f = open('dbname_result.csv', 'w')
wr = csv.writer(f)
curs.execute(sql)
rows = curs.fetchall()

for row in rows:
    wr.writerow(row)
    
conn.commit()
conn.close()
f.close()

结果

python test.py userdb01  
-> dbname_result.csv

但我希望的结果...

python test.py userdb01  
-> userdb01_result.csv

正如@sj95126 在评论中最低限度地描述的那样,您没有将 dbname 的值作为变量进行评估。您将其作为常量字符串值传递。

如果您使用的是 Python 3+,则可以按照说明使用 f 弦...

f = open(f'{dbname}_result.csv', 'w')

如果您使用 Python 2 或 3,您可以使用多种方法,但如果我需要跨版本兼容,我更喜欢 str.format

f = open('{}_result.csv'.format(dbname), 'w')