windows - Python: Få filmodifikationstider med større opløsning end et sekund

Indlæg af Hanne Mølgaard Plasc

Problem



os.path.getmtime() og os.stat() synes kun at returnere værdier i hele sekunder.


Er dette den største løsning muligt på enten et Windows- eller OSX-filsystem, eller er der en måde at få større opløsning på filtider?

Bedste reference


Dokumentationen til os.stat () har en note, der siger: [5]



  Den nøjagtige betydning og opløsning af
  st\_atime, st\_mtime og st\_ctime
  medlemmer afhænger af driften
  system og filsystemet. Til
  eksempel på Windows-systemer ved hjælp af
  FAT eller FAT32 filsystemer, st\_mtime
  har 2 sekunders opløsning og st\_atime
  har kun 1 dags opløsning. Se din
  operativsystem dokumentation for
  detaljer.



På f.eks. Windows, bruger filtidsstrukturen, der bruges til at repræsentere filtider, en opløsning på 100 nanosekunder. Jeg forventer Python at 'vide' dette og give dig den bedst mulige løsning. Er det muligt at du bruger filer på et FAT-filsystem? [6]

Andre referencer 1


HFS + (brugt af OS X) har en datoopløsning på et sekund. [7]

Andre referencer 2


Som dokumenteret i Python os modulet, er det en bærbar grænseflade til OS-specifik funktionalitet. Afhængigt af hvilken platform du kører på, får du forskellige opgaver. [8]


Specifikt er modifikationstiden returneret af stat opkald afhængig af filsystemet, hvor filerne befinder sig. For eksempel til optagelser i et FAT-filsystem er den fineste opløsning for modifikationstid 2 sekunder. Andre filsystemer vil have forskellige opløsninger.