On Jan 15, 11:35 pm, Terry Reedy <tjre...@udel.edu> wrote: > flagg wrote: > > I am still fairly new to python and programming in general. My > > question is regardingdataconversion, I am working on a script that > > will edit dns zone files, one of the functions i wrote handles > > updating the serial number. > > Our zone files use the date as the first part of the serial and a two > > digit integer as the last two. > > > i.e. 2009011501. The next update would be 2009011502, etc > > Here is the function I wrote, I am using dnspython for reading in zone > > files as Zone "objects". Because dnspython's built-in serial updater > > will not work with how we format our serial's, I have to re-write it. > > > def checkSerial(): > > """ > > Checks the current 'date' portion of the serial number and > > checks the current 'counter'(the two digit number at the end of > > the serial number), then returns a complete new serial > > """ > > currentDate = time.strftime("%Y""%m""%d", time.localtime()) > > for (name, ttl, rdata) in zone.iterate_rdatas(SOA): > > date = str(rdata.serial)[0:8] > > inc = str(rdata.serial)[8:10] > > If rdate.serial is already a string, as name would imply, the str() call > is pointless. If not, can you get inc as int more directly? > > > > > if date == currentDate: > > int(inc) + 1 > > print inc > > newInc = str(inc).zfill(2) > > serial = date + newInc > > print "date is the same" > > return serial > > elif date < currentDate: > > newInc = "01".zfill(2) > > serial = currentDate + newInc > > print "date is different" > > return serial > > > Through all of this I am doing a lot ofdatatypeconversion. string - > >> integer, integer back to string, etc. Is this an efficient way of > > handling this? I have to perform basic addition on the "inc" > > variable, but also need to expose that value as a string. What I > > have above does work, but I can't help but think there is a more > > efficient way. I guess I am not used todatatypes being converted so > > easily. > > Other than that, you are perhaps worrying too much, even if code could > be squeezed more. The idea that every object knows how to convert > itself to a string representation is basic to Python. > > tjr
Actually when i run a type(serial) on that variable it returns a "long" which i am not sure why dnspython uses a long variable to store the serial. But you could be right about me worrying to much. The other languages I have dabbled in (java, perl) I don't remember type conversion being as simple. But again I am still new, so don't quote me on that :) -- http://mail.python.org/mailman/listinfo/python-list