×
INTELLIGENT WORK FORUMS
FOR COMPUTER PROFESSIONALS

Log In

Come Join Us!

Are you a
Computer / IT professional?
Join Tek-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Tek-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

changing timestamps in a log file

changing timestamps in a log file

changing timestamps in a log file

(OP)
I'm trying to parse xml file and convert all the unixtimestamps in it to datetime...

                [ICODE]<Sample>
                        <TimeStamp>1291052077</TimeStamp>
                        blah blah
                        blah blah
                </Sample>
        
                <Sample>
                        <TimeStamp>1291052077</TimeStamp>
                        blah blah
                        blah blah
                </Sample>
        </Content>[/ICODE]


import fileinput

file = raw_input("Enter file: ")
file = open(file, "wb+")

for line in fileinput.FileInput(file,inplace=1):
    if "TimeStamp" in line:
        line=line.replace(<old>,<new>)   // don't know how to get all instances of the time
        pass

print(datetime.datetime.fromtimestamp(int("1284101485")).strftime('%Y-%m-%d %H:%M:%S'))

I've got some clues as above, but struggling to piece together things. Any thoughts?

RE: changing timestamps in a log file

Hi

I would skip the XML parsing and would simply treat it like text :

CODE --> Python interactive mode

>>> str="""<Sample>
...                         <TimeStamp>1291052077</TimeStamp>
...                         blah blah
...                         blah blah
...                 </Sample>
...         
...                 <Sample>
...                         <TimeStamp>1291052077</TimeStamp>
...                         blah blah
...                         blah blah
...                 </Sample>
...         </Content>"""
>>> def makeitdate(m):
...   return m.group(1)+datetime.datetime.fromtimestamp(int(m.group(2))).strftime('%Y-%m-%d %H:%M:%S')
...
>>> print re.sub(r'(<TimeStamp>)(\d+)',makeitdate,str)
<Sample>
                        <TimeStamp>2010-11-29 19:34:37</TimeStamp>
                        blah blah
                        blah blah
                </Sample>
        
                <Sample>
                        <TimeStamp>2010-11-29 19:34:37</TimeStamp>
                        blah blah
                        blah blah
                </Sample>
        </Content>

Feherke.
http://free.rootshell.be/~feherke/

RE: changing timestamps in a log file

(OP)
That helps, but I wish to do it on a file as opposed to a string  ....

RE: changing timestamps in a log file

Hi

I would change it like this :

CODE --> makeitdate.py

import fileinput
import re
import datetime

def makeitdate(m):
    return m.group(1)+datetime.datetime.fromtimestamp(int(m.group(2))).strftime('%Y-%m-%d %H:%M:%S')

for line in fileinput.input(inplace=True):
    print re.sub(r'(<TimeStamp>)(\d+)',makeitdate,line.rstrip())
Then run it as :

CODE

python makeitdate.py /path/to/file.xml

Feherke.
http://free.rootshell.be/~feherke/

RE: changing timestamps in a log file

(OP)
Works a charm :)

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Tek-Tips Forums free from inappropriate posts.
The Tek-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Tek-Tips forums is a member-only feature.

Click Here to join Tek-Tips and talk with other members! Already a Member? Login

Close Box

Join Tek-Tips® Today!

Join your peers on the Internet's largest technical computer professional community.
It's easy to join and it's free.

Here's Why Members Love Tek-Tips Forums:

Register now while it's still free!

Already a member? Close this window and log in.

Join Us             Close