[Tutor] A year's calendar to a text file? (original) (raw)

Dick Moores rdm at rcblue.com
Sun Jul 4 17:02:32 EDT 2004


Here's the latest version of my script. I'm pleased that the script works, but I'd appreciate some tips on how I could do this in a more Pythonesque way.

And I'm particularly concerned about the section where I tell the user the name of the file created (Alan Gauld in his tutorial recommends this kind of user feedback). Isn't there a better or easier way to print the filename without the spaces that would appear if I'd used

print "\nYear", year, "calendar created as c", year, ".txt"

Maybe using something like backspace to eliminate the two unneeded spaces? I've tried experimenting with \b, but I can't get it to work. (I'm using Windows XP.)

The script prints (for 1942): Year 1942 calendar created as c1942.txt Full path is C:\Documents and Settings\Dick\Desktop\Year Calendars\cal1942.txt

This is pretty trivial, I suppose, but I'd like to know.

"""

calendar_to_textfile.py

create year calendar for year of user's choice (from 1 C.E. thru 9999 C.E.)

import calendar

get from user the year for which he wants a calendar

year = raw_input("Enter year you want calendar for ")

partial path for text file for calendar

s = "C:\Documents and Settings\Dick\Desktop\Year Calendars\cal"

copy s to path

path = ""

for x in s: path += x

add year to path

for x in year[0:4]: path += x

#add ".txt" to path txt = ".txt" for x in txt[0:4]: path += x

calendar.setfirstweekday(6) #sets first day of week to Sunday inp = calendar.calendar(int(year))

outp = file(path,"w")

for line in inp: outp.write(line)

outp.close()

build filename for printing

filename = "c" for x in year: filename += x for x in ".txt": filename += x

print "\nYear", year, "calendar created as", filename print "Full path is", path """

Thanks, tutors,

Dick Moores



More information about the Tutor mailing list