Python Script to change name of a file to its timestamp

A Digital Timestamp is a sequence of characters(usually a combination of digits and delimiters), identifying the time when a certain event occurred. In computer science, timestamps are generally used for marking the time of the creation of a virtual entity but are not limited to this in its use case. Digital Timestamps are implemented in various standards, each favoring a particular use case. i.e. some standards make use of less precise timestamps (only storing date of event), some standards encode the timezone information in the timestamp. But the base syntax of timestamp remains largely the same between standards, which prevents alienation and provides flexibility in choosing one. 

In this article, we will learn how to obtain the date of creation of a file and would use that to create an ISO 8601 timestamp. Which would be used to name the file.

Functions Used:

  • os.path.getctime(): os.path.getctime() method in Python is used to get system’s ctime of the specified path. Here ctime refers to the last metadata change for specified path in UNIX while in Windows, it refers to path creation time.
  • time.strptime(): It is used to convert the string object to time object.
  • time.strftime(): time.strftime(format[, t]) function convert a tuprl or struct_time representing a time as returned by gmtime() or localtime() to a string as specified by the format argument.
    If t is not provided, the current time as returned by localtime() is used. The format must be a string.
  • os.rename(): os.rename() method in Python is used to rename a file or directory.
    This method renames a source file/ directory to specified destination file/directory.

File before Rename:



Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

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])

chevron_right


File after Rename:

Things to keep in mind while using the above code:

  • This code is for Windows OS. For Operating systems other than windows, the users can omit the form_t = form_t.replace(“:”, “꞉”) statement, as it is only required in windows as the OS doesn’t allow a colon as a filename. For use in other OS, the last statement (os.rename()) should also be modified accordingly.
  • The argument to strftime(), “%Y-%m-%d %H:%M:%S” is a format specifier. This is used to guide the output of strftime(). This format specifier could be changed in order to the syntax of other timestamp standards.
  • os.path.split(f_path)[0] in the last statement is for getting the path to the root (parent directory) of the file.
  • os.path.splitext(f_path)[1] is for adding the file extension (if any) of the original file to the timestamp

Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.