Die übergabe eines string-argument an eine Funktion - warum funktioniert das nicht?

Versuchen, übergeben Sie einen string-argument an eine Funktion, die dann als Variablen in der gesamten Funktion. Aus irgendeinem Grund, wenn ich versuche, dies zu tun, es funktioniert nicht. Was mache ich falsch?

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")

Bearbeitet das Programm. Nach dem Versuch, dieses neue, diese Fehlermeldung erhalten:

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
  • Bitte geben Sie an, in welcher Weise es funktioniert nicht. Sind Sie versuchen, den Wert der printer argument argument in der ersten subprocess.call() Linie?
  • In welchem Sinne ist es nicht?
  • Sie benötigen Semikolon nach if-Anweisungen.
  • if printer == 'saturn' or 'jupiter' or 'neptune' Sie vergessen etwas printer == hier
  • so weit wie ich dachte, "Zeichenfolge"variable"string" einfügen sollte, die variable in den string ein, aber ich würde verwenden Sie+,, nun wäre das nicht I.
  • Haben Sie vergessen, setzen Sie die ' + ' - operator während der Verwendung der variable. Wie diese: subprocess.call(r'Cscript c:/windows/System32/Printing_Admin_Scripts/en-US/Prnport.vbs -a -r "'+printer+'.print.mediag.com" -h "'+printer+'.print.mediag.com" -o raw') Versuchen, das gleiche für die anderen Aussagen
  • Sorry für die Albernheit dieser Frage, seit ca 6 Monaten seit ich programmiert in Python, es ist fading!

Schreibe einen Kommentar