尝试将字符串参数传递给函数,然后在整个函数中将其用作变量。出于某种原因,当我尝试这样做时,它无法正常工作。我做错了什么?
import subprocess
def printerSetup(printer):
subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs -a -r "'printer'.print.web.com" -h "' + printer + '.print.web.com" -o raw')
if printer == 'saturn' or printer == 'jupiter' or printer == 'neptune':
subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + printer + '" /f w:\printers\toshibae3511\eng\est_c2.inf /r "' + printer + '.print.web.com" /m "TOSHIBA e-STUDIO Color PS3"')
if printer == 'mercury':
subprocess.call(r'rundll32 printui.dll, PrintUIEntry /if /b "' + printer + '" /f w:\printers\dell1720\drivers\print\dell1720\DKABJ740.inf /r "' + printer + '.print.web.com" /m "Dell Laser Printer 1720dn"')
printerSetup("neptune")
printerSetup("mercury")
编辑了该计划。尝试运行这个新错误后,出现此错误:
C:\Python27\Projects\Printer Setup>c:\python27\python.exe saturn.py
File "saturn.py", line 3
subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/P
rnport.vbs -a -r "'printer'.print.web.com" -h "' + printer + '.print.web.c
om" -o raw')
^
SyntaxError: invalid syntax
答案 0 :(得分:6)
您需要为每个variable == value
语句指定or
,如下所示:
if printer == 'saturn' or printer == 'jupiter' or printer == 'neptune':
您还忘记了每个if
语句中的尾随冒号。
如果您想说“此变量是否与此值列表匹配?”,以下内容可能更清晰:
if printer in ('saturn', 'jupiter', 'neptune'):
您还需要向字符串添加变量 - 您不能将它们放在相邻位置:
'string' + variable + 'string'
# not
'string'variable'string'