Kind of puzzled about timestamps

Dana Nowell dananowell at cornerstonesoftware.com
Thu Mar 4 19:03:32 EST 2021


If I'm reading it correctly, it's a 5 hr difference?  Local vs gmt?


On Thu, Mar 4, 2021, 6:43 PM Bruce Labitt <bruce.labitt at myfairpoint.net>
wrote:

> This is an odd question.  It involves both python and linux.
>
> Have a bunch of files in a directory that I'd like like to sort by similar
> names and in time order.  This isn't particularly difficult in python.
> What is puzzling me is the modified timestamp returned by python doesn't
> match whats reported by the file manager nautilus or even ls.  (ls and
> nautilus are consistent)
> $ lsb_release -d Ubuntu 20.04.2 LTS
> $ nautilus --version  GNOME nautilus 3.36.3
>
> $ python3 --version  Python 3.8.5
>
> $ ls -lght
> total 4.7M
> -rw-r--r-- 1 bruce 209K Feb 26 01:49 20210226_022134_PLD.edf
> -rw-r--r-- 1 bruce  65K Feb 26 01:49 20210226_022134_SAD.edf
> -rw-r--r-- 1 bruce 2.4M Feb 26 01:49 20210226_022133_BRP.edf
> -rw-r--r-- 1 bruce 1.1K Feb 26 00:58 20210225_224134_EVE.edf
> -rw-r--r-- 1 bruce 1.9M Feb 25 21:18 20210225_224141_BRP.edf
> -rw-r--r-- 1 bruce 169K Feb 25 21:17 20210225_224142_PLD.edf
> -rw-r--r-- 1 bruce  53K Feb 25 21:17 20210225_224142_SAD.edf
>
> Python3 script
>
> #!/usr/bin/env python3
> import os
> from datetime import datetime
>
> def convert_date(timestamp):
>   d = datetime.utcfromtimestamp(timestamp)
>   formatted_date = d.strftime('%d %b %Y  %H:%M:%S')
>   return formatted_date
>
> with os.scandir('feb262021') as entries:
>   for entry in entries:
>     if entry.is_file():
>       info = entry.stat()
>       print(f'{entry.name}\t Last Modified: {convert_date(info.st_mtime)
> }' )  # last modification
>
> info *(after exit) contains*: os.stat_result(st_mode=33188,
> st_ino=34477637, st_dev=66306, st_nlink=1, st_uid=1000, st_gid=1000,
> st_size=213416, st_atime=1614379184, st_mtime=1614322176,
> st_ctime=1614379184)
>
> Running the script results in:
>
> 20210226_022133_BRP.edf     Last Modified: 26 Feb 2021  06:49:34
> 20210225_224141_BRP.edf     Last Modified: 26 Feb 2021  02:18:42
> 20210225_224142_PLD.edf     Last Modified: 26 Feb 2021  02:17:44
> 20210225_224142_SAD.edf     Last Modified: 26 Feb 2021  02:17:44
> 20210225_224134_EVE.edf     Last Modified: 26 Feb 2021  05:58:26
> 20210226_022134_SAD.edf     Last Modified: 26 Feb 2021  06:49:36
> 20210226_022134_PLD.edf     Last Modified: 26 Feb 2021  06:49:36
>
> Actually, what is returned by my script is at least sensible, given that
> 20210225_224141_BRP.edf started on Feb 25th and ended recording at 2:17am
> on Feb 26th.  I know this because I can see the data on a separate
> program.  20210226_022133_BRP.edf started on Feb 26th at around 2:21am
> and terminated at 6:49am.  BRP files are written to continuously at a 25 Hz
> rate all evening.  What makes no sense whatsoever is what *ls* is
> reporting.
>
> Do *ls* and python3 use different definitions of "last modified"?
>
> Guess I can keep going, but I really was surprised at the difference
> between methods.  Default for ls is "last modified", at least as reported
> by man.  ls's last modified just isn't correct, at least on Ubuntu 20.04.2
>
> Is this a quirk?  Am I doing something wrong?  Some kind of voodoo
> definition of "last modified"?  What does Linux say "last modified" really
> means?
>
> FWIW, I am coming up to speed on processing these edf files to help out on
> an open source project.  Been working on some data analysis tools.  As an
> aside, biological data is very messy.  It's been a treat to work on this as
> it's forced me to dust off the mental cobwebs and work on a problem that
> can help a lot of people.
>
>
> _______________________________________________
> gnhlug-discuss mailing list
> gnhlug-discuss at mail.gnhlug.org
> http://mail.gnhlug.org/mailman/listinfo/gnhlug-discuss/
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.gnhlug.org/pipermail/gnhlug-discuss/attachments/20210304/5f2daf28/attachment.html 


More information about the gnhlug-discuss mailing list