Date using input

Dave Angel davea at ieee.org
Thu Sep 24 07:59:58 EDT 2009


flebber wrote:
> Sorry to ask a simple question but I am a little confused how to
> combine the input function and the date time module.
>
> Simply at the start of the program I want to prompt the user to enter
> the date, desirably in the format dd/mm/year.
> However I want to make sure that python understands the time format
> because first the date will form part of the name of the output file
> so dd/mm/year as 1st September 2009, secondly if I have multiple
> output files saved in a directory I may need to search later on the
> files and contents of files by date range. So can I timestamp the
> file?
>
> I know this is a simple question but it eludes me exactly how to do
> it.
>
> I have the basics from http://docs.python.org/library/datetime.html
>
> from datetime import date
> date = input("type date dd/mm/year: ")
> datetime(day,month,year)
>
> # some program blocks
>
> #print to file(name = date) or apphend if it exists
>
>
>   
What version of python is your class, instructor, and text book using?  
If you want to learn fastest, you probably need to be using the same, or 
nearly same environment.  The input() function is one place where it 
matters whether it's Python 2.x or Python 3.x.  While you're at it, you 
should give the rest of your environment, such as which OS.

The doc page you pointed us to is for Python 2.6.2, but the input 
function on that version returns an integer.  Perhaps you want raw_input() ?

What code have you written, and what about it doesn't work?  Have you 
added print statements before the line that causes the error to see what 
the intermediate values are?


To try to anticipate some of your problems, you should realize that in 
most file systems, the slash is a reserved character, so you can't write 
the date that way.  I'd suggest using dashes. I put dates in directory 
names, and I always put year, then month, then day, because then sorting 
the filenames also sorts the dates.  I'm not in a country that sorts 
dates that way, but it does make things easier.  So directories for the 
last few days would be:
     2009-09-22
     2009-09-23
     2009-09-24

When asking the user for a date, or telling him a date, by all means use 
your country's preferred format, as you say.

You mention timestamping the file.  While that can be done (Unix touch, 
for example), I consider it a last resort for keeping track of useful 
information.  At best, it should be an extra "reminder" of something 
that's already in the file contents.  And since many programs make the 
assumption that if the timestamp doesn't change, the contents haven't 
changed, you can only reasonably do this on a file whose contents are 
fixed when first created.

If you control the internal format of the file, put the date there, 
perhaps right after the header which defines the data type and version.





More information about the Python-list mailing list