如何使用 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')
如何使用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')