[Tutor] need advice on streamlining code...

Jacob S. keridee at jayco.net
Wed Jan 19 02:21:31 CET 2005


> yeah, I wasn't sure about that readline/lines thing, cos I'm not sure
> how popen works.

Well, I'm not positive about it either! But that doesn't mean that you can't 
comment out what you had, try this, and uncomment the previous if it doesn't 
work. I would imagine that it works because it seems to me if it can split 
the whole input, it can certainly split just one split deep!!! Anyway...

Jacob

> On Mon, 17 Jan 2005 21:38:37 -0500, Jacob S. <keridee at jayco.net> wrote:
>> I seem to always be the one to suggest this, but --
>>
>> "String methods are better than using the string module because the 
>> string
>> module has been ?deprecated? or will be soon. I think that is the word 
>> here.
>> So, do this instead."
>>
>> insideipgrepfd = os.popen("grep ifconfig_fxp0 /etc/rc.conf")
>> insideipgrep = insideipgrepfd.readline()  ## Says same thing below --
>> readline() just reads first line
>> insideipfield, insideip = insideipgrep[0].strip().split("=")
>> insideipsplit = insideip.split()
>> insideipquads = insideipsplit[1].split(".")
>> insidemaskquads = insideipsplit[4].split(".")
>>
>> And, heck, I know it wouldn't be that simple, but if the line stays the 
>> same
>> but just the numbers change, you can do,
>>
>> insideipgrepfd = os.popen("grep ifconfig_fxp0 /etc/rc.conf")
>> insideipgrep = insideipgrepfd.readlines()  ##Wait, if you're just using 
>> the
>> first line use insideipgrepfd.readline()
>> insideipgrep = insideipgrep.lstrip("ifconfig_fxp0=\"inet ")
>> temp = insideipgrep.split(" netmask ")
>> insideipquads = temp[0].split(".")
>> insideipmaskquads = temp[1].split(".")
>>
>> Warning, code just above is not very stable --  if the text of the line
>> changes in anyway it won't work.
>>
>> HTH,
>> Jacob Schmidt
>>
>> > The following block of code works, and provides the necessary output 
>> > I'm
>> > looking for...but I have a feeling that it's working through sheer 
>> > brute
>> > force and could be better:
>> >
>> >    insideipgrepfd = os.popen("grep ifconfig_fxp0 /etc/rc.conf")
>> >    insideipgrep = insideipgrepfd.readlines()
>> >    insideipfield, insideip = 
>> > string.split(string.strip(insideipgrep[0]),
>> > "=")
>> >    insideipsplit = string.split(insideip, " ")
>> >    insideipquads = string.split(insideipsplit[1], ".")
>> >    insidemaskquads = string.split(insideipsplit[4], ".")
>> >
>> > the line in /etc/rc.conf looks like:
>> >
>> > ifconfig_fxp0="inet 172.31.2.100 netmask 255.255.255.0"
>> >
>> > Any and all thoughts/pointers are appreciated.
>> >
>> >    ~elh
>> >
>> > --
>> > Eric L. Howard           e l h @ o u t r e a c h n e t w o r k s . c o 
>> > m
>> > ------------------------------------------------------------------------
>> > www.OutreachNetworks.com 
>> > 313.297.9900
>> > ------------------------------------------------------------------------
>> > JabberID: elh at jabber.org                 Advocate of the Theocratic 
>> > Rule
>> > _______________________________________________
>> > Tutor maillist  -  Tutor at python.org
>> > http://mail.python.org/mailman/listinfo/tutor
>> >
>> >
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor at python.org
>> http://mail.python.org/mailman/listinfo/tutor
>>
>
>
> -- 
> 'There is only one basic human right, and that is to do as you damn well 
> please.
> And with it comes the only basic human duty, to take the consequences.
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
> 



More information about the Tutor mailing list