de-vraag
  • Klausimai
  • Žymos
  • Vartotojai
Pranešimai
Apdovanojimai
Registracija
Užsiregistravę gausite pranešimus apie atsakymus ir komentarus į savo klausimus.
Prisijungti
Jei jau turite paskyrą, prisijunkite ir patikrinkite naujus pranešimus.
Už pridėtus klausimus, atsakymus ir komentarus bus skiriami apdovanojimai.
Daugiau
Šaltinis
Redaguoti
Mark Biek
Mark Biek
Question

Kaip gauti failo sukūrimo & amp; modifikavimo data / laikas Python?

Turiu scenarijų, kuris turi atlikti tam tikrus veiksmus pagal failų sukūrimo ir pakeitimo datas, bet turi veikti "Linux" ir "Windows".

Koks yra geriausias visoms platformoms skirtas būdas gauti failo sukūrimo ir pakeitimo datą ir laiką "Python" programoje?

852 2008-10-25T21:54:56+00:00 3
Programavimas
file
python
Šis klausimas turi 1 atsakymas atsakymų anglų kalba, norėdami juos perskaityti prisijunkite prie savo paskyros.
Bryan Oakley
Bryan Oakley
popietr spalis 2008 в 10:00
2008-10-25T22:00:54+00:00
Daugiau
Šaltinis
Redaguoti
#8592490

Galite rinktis iš kelių variantų. Pirmiausia galite naudoti funkcijas os.path.getmtime ir os.path.getctime:

import os.path, time
print("last modified: %s" % time.ctime(os.path.getmtime(file)))
print("created: %s" % time.ctime(os.path.getctime(file)))

Kita galimybė - naudoti os.stat:

import os, time
(mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) = os.stat(file)
print("last modified: %s" % time.ctime(mtime))

Pastaba: ctime() *nix sistemose reiškia ne sukūrimo laiką, o paskutinį inodo duomenų pakeitimo laiką. (ačiū kojiro už tai, kad komentaruose paaiškino šį faktą, pateikdamas nuorodą į įdomų tinklaraščio įrašą)

 phoenix
phoenix
Redaguotas atsakymas popietr rugpjūtis 2017 в 9:40
654
0
Martin Beckett
Martin Beckett
popietr spalis 2008 в 9:58
2008-10-25T21:58:01+00:00
Daugiau
Šaltinis
Redaguoti
#8592489

os.stat https://docs.python.org/2/library/stat.html#module-stat

redaguoti: naujesniame kode tikriausiai turėtumėte naudoti os.path.getmtime() (ačiū Christian Oudard) bet atkreipkite dėmesį, kad jis grąžina slankiojo kablelio reikšmę time_t su sekundžių dalimi (jei jūsų OS tai palaiko)

 kmarsh
kmarsh
Redaguotas atsakymas popietr gruodis 2017 в 5:23
46
0
 Jay
Jay
popietr spalis 2008 в 10:05
2008-10-25T22:05:20+00:00
Daugiau
Šaltinis
Redaguoti
#8592491

Yra du metodai, kaip gauti mod laiką: os.path.getmtime() arba os.stat(), tačiau ctime nėra patikimas įvairioms platformoms (žr. toliau).

os.path.getmtime()

getmtime(path)
Grąžina paskutinio kelio pakeitimo laiką. Grąžinama reikšmė yra skaičius, nurodantis sekundžių skaičių nuo epochos (žr. laiko modulį). Sukeliama os.error, jei failas neegzistuoja arba yra nepasiekiamas. Nauja 1.5.2 versijoje. Pakeista 2.3 versijoje: Jei os.stat_float_times() grąžina True, rezultatas yra slankiojo kablelio skaičius.

os.stat()

stat(path)
Atlikti sistemos skambutį stat() nurodytu keliu. Grąžinama vertė yra objektas, kurio atributai atitinka stat struktūros narius, būtent: st_mode (apsauga bitai), st_ino (inodo numeris), st_dev (įrenginys), st_nlink (kietųjų nuorodų skaičius), st_uid (savininko naudotojo ID), st_gid (savininko grupės ID), st_size (failo dydis baitais), st_atime (paskutinės prieigos laikas), st_mtime (naujausio turinio laikas) pakeitimo laikas), st_ctime (priklauso nuo platformos; paskutinio metaduomenų pakeitimo laikas "Unix" sistemoje arba sukūrimo laikas "Windows" sistemoje):

>>> import os
>>> statinfo = os.stat('somefile.txt')
>>> statinfo
(33188, 422511L, 769L, 1, 1032, 100, 926L, 1105022698,1105022732, 1105022732)
>>> statinfo.st_size
926L
>>> 

Pirmiau pateiktame pavyzdyje, norėdami gauti mtime ir ctime, turėtumėte naudoti statinfo.st_mtime arba statinfo.st_ctime.

37
0
Pridėti klausimą
Kategorijos
Visi
Technologijos
Kultūra / poilsis
Gyvenimas / Menai
Mokslas
Profesionalus
Verslas
Vartotojai
Visi
Naujas
Populiarus
1
Roxana Elizabeth CASTILLO Avalos
Registruota prieš 4 dienas
2
Hideo Nakagawa
Registruota prieš 5 dienas
3
Sergiy Tytarenko
Registruota prieš 6 dienas
4
shoxrux azadov
Registruota prieš 1 savaitę
5
Koreets Koreytsev
Registruota prieš 1 savaitę
DE
EL
ES
FR
ID
IT
JA
KO
LT
NL
PT
RU
SL
TR
ZH
© de-vraag 2022
Šaltinis
stackoverflow.com
pagal licenciją cc by-sa 3.0 nurodant autorystę