2017-08-22 3 views
1

Das Skript, das ich arbeite, ist für mich, Benutzereingaben zu verketten, um ein Netzlaufwerk zuzuordnen. Ich habe versucht, Subprozess und OS zu importieren, aber ich hatte keinen Erfolg.Kann Netzwerklaufwerk nicht verketten

Im Folgenden habe ich ein Beispiel für meinen Code mit dem Subprozess-Modul aufgeführt.

import re 
import subprocess 

# Disconnect anything on M 
subprocess.call(r'net use z: /del', shell=True) 
#subprocess.call(r'net use z:', shell=True) 

sending = input("Enter sending: ") 
sending = sending.lower() 

distribution = 'c0d' 
service = 'c0s' 

if re.match(sending[:3], distribution, flags=0): 
    subprocess.call(r'net use z: \\+sending+-DB-00\fake_name\rce\help', shell=True) 
    print("working distribution center") 

elif re.match(sending[:3], service, flags=0): 
    print("working service center") 
else: 
    print("try again") 

Sorry, ich vergaß in den Fehler habe ich wurde immer Fehler: Systemfehler 53 aufgetreten ist.

Der Netzwerkpfad wurde nicht gefunden.

Ich habe festgestellt, dass sie Weg, den ich

+0

ein Erfolg? meint? Was ist die Ausgabe, die Sie bekommen? –

+0

'r'net verwenden z: \\ + Senden + -DB-00 \ fake_name \ rce \ help'', lass mich raten, dies sollte' r'net verwenden z: \\ '+ sending + r'-DB- 00 \ fake_name \ rce \ help''? Weil Sie keine Verkettung durchführen, verwenden Sie die Literalzeichenfolge '' + sending + '' – dhke

+0

subprocess.call (Verwenden Sie z: \\' + sending + '- DB-00 \ -DB-00 \\ fake_name \\ rce \\ help ', shell = True) –

Antwort

0

Nicht sicher bestehen zu kartieren versuchen, wenn ich Ihre Bedürfnisse richtig zu verstehen, aber wenn Sie Benutzereingaben von sending Variable in Shell-Befehl verketten wollen, sollten Sie es draußen bewegen Zitate:

import re 
import subprocess 

# Disconnect anything on M 
subprocess.call(r'net use z: /del', shell=True) 
#subprocess.call(r'net use z:', shell=True) 

sending = input("Enter sending: ") 
sending = sending.lower() 

distribution = 'c0d' 
service = 'c0s' 

if re.match(sending[:3], distribution, flags=0): 
    subprocess.call(r'net use z: \\'+sending+r'-DB-00\fake_name\rce\help', shell=True) 
    print("working distribution center") 

elif re.match(sending[:3], service, flags=0): 
    print("working service center") 
else: 
    print("try again") 
+0

Wenn ich die Konkatenation aus den einzelnen Anführungszeichen nehme. Dies scheint das Problem korrigiert zu haben. Danke bezet –

Verwandte Themen