Una marca de tiempo digital es una secuencia de caracteres (generalmente una combinación de dígitos y delimitadores), que identifica la hora en que ocurrió un determinado evento. En informática, las marcas de tiempo se utilizan generalmente para marcar el momento de la creación de una entidad virtual, pero no se limitan a esto en su caso de uso. Las marcas de tiempo digitales se implementan en varios estándares, cada uno de los cuales favorece un caso de uso particular. es decir, algunos estándares utilizan marcas de tiempo menos precisas (solo almacenan la fecha del evento), algunos estándares codifican la información de la zona horaria en la marca de tiempo. Pero la sintaxis base de la marca de tiempo sigue siendo en gran medida la misma entre los estándares, lo que evita la alienación y brinda flexibilidad para elegir uno.
En este artículo, aprenderemos cómo obtener la fecha de creación de un archivo y la usaremos para crear una marca de tiempo ISO 8601 . Que se usaría para nombrar el archivo.
Funciones utilizadas:
- os.path.getctime(): os.path.getctime() ctime ctime UNIX Windows
- hora.strftime(): hora.strftime(formato[, t]) gmtime()horalocal()
horalocal() - os.rename(): os.rename()
Archivo antes de cambiar el nombre:
Python3
import time import os # Getting the path of the file f_path = "/location/to/gfg.png" # Obtaining the creation time (in seconds) # of the file/folder (datatype=int) t = os.path.getctime(f_path) # Converting the time to an epoch string # (the output timestamp string would # be recognizable by strptime() without # format quantifers) t_str = time.ctime(t) # Converting the string to a time object t_obj = time.strptime(t_str) # Transforming the time object to a timestamp # of ISO 8601 format form_t = time.strftime("%Y-%m-%d %H:%M:%S", t_obj) # Since colon is an invalid character for a # Windows file name Replacing colon with a # similar looking symbol found in unicode # Modified Letter Colon " " (U+A789) form_t = form_t.replace(":", "꞉") # Renaming the filename to its timestamp os.rename( f_path, os.path.split(f_path)[0] + '/' + form_t + os.path.splitext(f_path)[1])
Archivo después de cambiar el nombre:
Cosas a tener en cuenta al usar el código anterior:
- Este código es para el sistema operativo Windows. Para sistemas operativos que no sean Windows, los usuarios pueden omitir la declaración form_t = form_t.replace(“:”, “꞉”) , ya que solo se requiere en Windows ya que el sistema operativo no permite dos puntos como nombre de archivo. Para su uso en otros sistemas operativos, la última declaración ( os.rename()) también debe modificarse en consecuencia.
- El argumento de strftime() , “%Y-%m-%d %H:%M:%S” es un especificador de formato. Esto se usa para guiar la salida de strftime(). Este especificador de formato podría cambiarse para adaptarlo a la sintaxis de otros estándares de marca de tiempo.
- os.path.split(f_path)[0] en la última declaración es para obtener la ruta a la raíz (directorio principal) del archivo.
- os.path.splitext(f_path)[1] es para agregar la extensión de archivo (si corresponde) del archivo original a la marca de tiempo