There has to be a better way to split this string!

Chris Angelico rosuav at gmail.com
Tue Feb 9 20:34:54 EST 2016


On Wed, Feb 10, 2016 at 12:26 PM, Anthony Papillion
<anthony at cajuntechie.org> wrote:
> I am using datetime.now() to create a unique version of a filename.

First off, be aware that this won't make a unique file name. But if
you're okay with that (deal with collisions somehow), then sure.

> 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?

Instead of using str(), use strftime():

>>> now = datetime.datetime.now()
>>> str(now)
'2016-02-10 12:34:26.377701'
>>> now.strftime("%Y-%m-%d-%H-%M-%S-%f")
'2016-02-10-12-34-26-377701'

You could instead use some other format string if you like. Here's your options:

https://docs.python.org/3/library/datetime.html#strftime-strptime-behavior

ChrisA


More information about the Python-list mailing list