我有一个Python脚本,它调用带有各种参数的可执行程序(在本例中,它是“sqlpubwiz.exe”,这是“Microsoft SQL Server数据库发布向导”):import os
sqlpubwiz = r'"C:\Program Files\Microsoft SQL Server\90\Tools\Publishing\sqlpubwiz.exe"'
server = 'myLocalServer'
database = 'myLocalDatabase'
connection_values = ['server=' + server, 'database=' + database, 'trusted_connection=true']
connection_string = ';'.join(connection_values)
dbms_version = '2000'
sqlscript_filename = 'CreateSchema.sql'
args = [
sqlpubwiz,
'script',
'-C ' + connection_string,
sqlscript_filename,
'-schemaonly',
'-targetserver ' + dbms_version,
'-f',
]
cmd = ' '.join(args)
os.system(cmd)
这段代码运行正常,但我想养成使用subprocess的习惯,因为它是用来替换os.system的。然而,经过几次失败的尝试,我似乎无法让它正常工作。
如果上面的代码被转换为使用子流程而不是os.system,它会是什么样子?