2017-08-22 4 views
1

私が働いているスクリプトは、ネットワークドライブをマッピングするために連結ユーザ入力に関連しています。私はサブプロセスとOSをインポートしようとしましたが、何の成功もありませんでした。連結ネットワークドライブできません

下に、サブプロセスモジュールを使用したコードの例を示しました。

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

申し訳ありませんが、私は エラーを得ていたエラーに入れるのを忘れ: システムエラー53が発生しました。

ネットワークパスが見つかりませんでした。

は私が私が正しくあなたのニーズを理解していれば、私はマッピングしようとしている彼らのパスが

+0

手段?あなたは何を得ていますか? –

+0

'r'net use z:\\ + sending + -DB-00 \ fake_name \ rce \ help''これは' r'net use z:\\ '+ sending + r'-DB- 00 \ fake_name \ rce \ help''?あなたは連結していないので、リテラル文字列 ''+ sending +'' – dhke

+0

subprocess.call(r'net use z:\\ '+ sending +' - DB-00 \ -DB-00 \\ fake_name \\ rce \\ help '、shell = True) –

答えて

0

わからないが存在することを確認したが、あなたはシェルコマンドにsending変数からユーザの入力を連結したい場合は、外にそれを移動する必要があります見積もり:

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

一重引用符から連結を取ります。これは問題を修正したようです。ベゼットありがとう –