On 10 February 2016 at 01:26, Anthony Papillion <anth...@cajuntechie.org> wrote: > I am using datetime.now() to create a unique version of a filename. > When the final file is named, it will look something like: > > myfile-2015-02-09-19-08-45-4223 > > Notice I'm replacing all of the "."'s, " "'s, and ":"'s returned by > datetime.now() with "-"'s. I'm doing that using the following code but > it's freaking ugly and I KNOW there is a better way to do it. I just > can't seem to think of it right now. Can anyone help? What is the > "right", or at least, less ugly, way to do this task? > > Here is the code I'm using: > > > unprocessed_tag = str(datetime.datetime.now()) > removed_spaces = unprocessed_tag.split(" ") > intermediate_string = removed_spaces[0] + "-" + removed_spaces[1] > removed_colons = intermediate_string.split(":") > intermediate_string = removed_colons[0] + "-" + removed_colons[1] > + "-" + removed_colons[2] > removed_dots = intermediate_string.split(".") > final_string = removed.dots[0] + "-" + removed_dots[1] > > return final_string
Chris' suggestion to use strftime is better but assuming you really needed to work with the default string then there are easier ways e.g.: >>> from datetime import datetime >>> str(datetime.now()).translate(str.maketrans(': .', '---')) '2016-02-10-01-44-54-244789' -- Oscar -- https://mail.python.org/mailman/listinfo/python-list