我开始学习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"
答案 0 :(得分:2)
首先运行两个 scselect
命令,然后只显示其中一个命令的输出。
当您来到if choice == 1
等时,b
和c
都已设置并已捕获命令的输出。已经运行了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