Need help with network script

Dave Angel davea at davea.name
Wed Jul 17 22:06:27 EDT 2013


On 07/17/2013 09:50 PM, Chris Angelico wrote:
> On Thu, Jul 18, 2013 at 11:44 AM,  <bbechdol at gmail.com> wrote:
>> Hi everyone. I am starting to learn python and I decided to start with what I though was a simple script but I guess now. All I want to do is return what current network location I am using on my mac. Every time I run it, it gives me back a 0. I don't know what I am doing wrong so here is my code. I really hope some one can help me. This script is unique to MACS btw.
>>
>> import sys
>> import subprocess
>>
>> loc = "scselect"
>> srn = "scselect SRN"
>> home = "scselect HOME"
>>
>> a = subprocess.call(loc, shell=True, stdout=subprocess.PIPE)
>> b = subprocess.call(srn, shell=True, stdout=subprocess.PIPE)
>> c = subprocess.call(home, shell=True, stdout=subprocess.PIPE)
>>
>> print "\n##### NETWORK SELECTION #####"
>> print "\nYour current location is set to \n%s" (a)
>
> Your last line here looks wrong. Is this really the code you're using?
> This code will crash with a TypeError, because you're trying to call a
> string.
>
> Copy and paste your actual code, don't re-type it :)
>
In addition to reposting using copy/paste, please specify the Python 
version.  There were differences between 2.6 and 2.7.

Short answer is that subprocess.call() returns an integral returncode. 
So zero tells you that shelling to the subprocess succeeded.

Perhaps you'd like to use  subprocess.check_output() instead of 
subprocess.call().


-- 
DaveA




More information about the Python-list mailing list