-1

我开始学习 python,我决定从一个简单的脚本开始,但我想不是。我要做的就是返回我在 Mac 上使用的当前网络位置。每次我运行它时,它都会返回正确的位置,但是当我尝试更改它时,什么也没有发生。我不知道我做错了什么,所以这是我的代码。我真的希望有人能帮助我。这个脚本是 MACS 独有的。我知道“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"
4

1 回答 1

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
于 2013-07-18T14:16:42.630 回答