[Tutor] need advice on streamlining code...

Liam Clarke cyresse at gmail.com
Tue Jan 18 04:45:09 CET 2005


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


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.


More information about the Tutor mailing list