我的Mac网络位置脚本已损坏

时间:2013-07-18 14:07:03

标签: python macos networking python-2.7

我开始学习python,我决定从一个简单的脚本开始,但我猜不是。我想要做的就是返回我在mac上使用的当前网络位置。每次我运行它,它会让我回到正确的位置,但是当我尝试更改它时,没有任何反应。我不知道我做错了什么,所以这是我的代码。我真的希望有人可以帮助我。这个脚本是MACS btw独有的。我知道“scselect”是内置的,但我想知道是否可以用Python完成。我知道下面的代码很粗糙但是我知道我会做得更好。我使用的是Python 2.7。

import subprocess

loc = "scselect"
srn = "scselect SRN"
home = "scselect HOME"

a = subprocess.check_output(loc, shell=True)

print "\n##### NETWORK SELECTION #####"
print "\nYour current location is set to \n\n%s" % a

choice = raw_input("Please select what location you want to change to: ")

b = subprocess.Popen(srn, shell=True, stdout=subprocess.PIPE)
c = subprocess.Popen(home, shell=True, stdout=subprocess.PIPE)

choice = int(choice)

if choice == 1:
    print "\nSwitching to HOME...\n"
    c
elif choice == 2:
    print "\nSwitching to SRN...\n"
    b
else:
    print "\nShutting down...\n"

1 个答案:

答案 0 :(得分:2)

首先运行两个 scselect命令,然后只显示其中一个命令的输出

当您来到if choice == 1等时,bc都已设置并已捕获命令的输出。已经运行了scselect SRN scselect HOME,最后一个撤消了第一个命令所取得的任何内容。

subprocess次调用移至if语句:

if choice == 1:
    print "\nSwitching to HOME...\n"
    output = subprocess.Popen(home, shell=True, stdout=subprocess.PIPE)
    print output