While not using datetime
, this solves your problem (answers your question) of getting a string with the current time and date format you specify:
import time
timestr = time.strftime("%Y%m%d-%H%M%S")
print timestr
yields:
20120515-155045
so your filename could append or use this string.
Change this line
filename1 = datetime.now().strftime("%Y%m%d-%H%M%S")
To
filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S")
Note the extra datetime
. Alternatively, change your
import datetime
to from datetime import datetime
now
is a class method in the class datetime
in the module datetime
. So you need
datetime.datetime.now()
Or you can use a different import
from datetime import datetime
Done this way allows you to use datetime.now
as per the code in the question.
This one is much more human readable.
from datetime import datetime
datetime.now().strftime("%Y_%m_%d-%I_%M_%S_%p")
'2020_08_12-03_29_22_AM'
I'm surprised there is not some single formatter that returns a default (and safe) 'for appending in filename' - format of the time,
We could simply write FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'
"%x" instead of "%Y%m%d-%H%M%S"
Here's some that I needed to include the date-time stamp in the folder name for dumping files from a web scraper.
# import time and OS modules to use to build file folder name
import datetime
import time
import os
# Build string for directory to hold files
# Output Configuration
# drive_letter = Output device location (hard drive)
# folder_name = directory (folder) to receive and store PDF files
drive_letter = r'D:\\'
folder_name = r'downloaded-files'
folder_time = datetime.now().strftime("%Y-%m-%d_%I-%M-%S_%p")
folder_to_save_files = drive_letter + folder_name + folder_time
# IF no such folder exists, create one automatically
if not os.path.exists(folder_to_save_files):
os.mkdir(folder_to_save_files)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With