[Tutor] need advice on streamlining code...

Jacob S. keridee at jayco.net
Tue Jan 18 03:38:37 CET 2005


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
>
> 



More information about the Tutor mailing list