[Newbie] Need help with quick text proggy.
Greg Krohn ("X", "@")
"gkrohnXvolucris.8m.com".replace
Thu Oct 10 03:37:09 EDT 2002
"Greg Krohn" <"gkrohnXvolucris.8m.com".replace("X", "@")> wrote in message
news:ao39el02bel at enews1.newsguy.com...
>
> "Corey Woodworth" <schitz0boy at hotmail.com> wrote in message
> news:24d8090a.0210091854.725f4c9f at posting.google.com...
> > I havn't programmed in python in a while (not since 2.0) but I just
> > found myself in a predicament where I really need to write a program
> > and write it fast. Python still seems to be the best choice even
> > though I'm very rusty and wasn't to good to start with. Here is my
> > problem. I've got a text file that is a list of elements. a time
> > followed by a number on each line. Like this for example:
> >
> > 1:46p 65
> > 5:45a 99
> > 2:36p 88
> > 10:53a 79
> > 5:10a 86
> > 2:43p 169
> > 10:14a 55
> >
> > I just found out that all my times are 6 hours off. (AARGH!) and I
> > need some help writing a program that will update all those timestamps
> > for me. Any help at all is appreciated, wheter it be links, some
> > source, or whatever. Thank a bunch.
> >
> > Corey
>
> How's this:
>
[ SNIP My original crappy code.]
That worked with your sample data, but not in all cases. Try this:
fin = file('your/source/file', 'r')
fout = file('your.output.file', 'w')
for line in fin:
try:
colon = line.find(':')
hour = int(line[:colon])
except ValueError:
print 'Invalid hour: %s' % line
continue
try:
space = line.find(' ')
minute = int(line[colon + 1: space - 1])
except ValueError:
print 'Invalid minute: %s' % line
continue
ampm = line[space - 1: space]
if ampm == 'p':
hour += 12
elif ampm != 'a':
print 'Invalid am/pm indentifier: %s' % line
continue
value = line[space + 1:]
hour += 6
hour = hour % 24
if hour > 12:
hour -= 12
ampm = 'p'
else:
ampm = 'a'
if hour == 0: #This is what I added
hour = 12 #the second time around.
fout.write('%d:%d%s %s' % (hour, minute, ampm, value))
fin.close()
fout.close()
More information about the Python-list
mailing list