The suggestion to use StringIO to make a string have the same interface as a file works perfect in my situation. Here is now the working result (just in case it is useful to anyone) part of this is still a definite hack and suggestions for improvement are certainly appreciated.
Want: have an easily maintainable file containing homework assignments, but have it nicely formatted on my webpage. Solution: have a file with due dates and assignments as follows: Mon Jan 28 1.1: 1,2,3 (at this point only the indentation is taken into account). Then use the following script (setting some variables and server, login, and passwd for the ftp connection): #!/usr/bin/env python homeworktxt = "homework.txt" homeworkhtml = [] import sys import ftplib import StringIO Indent = ' ' StartTable = '<table border="1" width="100%"><tr><td>Due</ td><td>Assignment</td></tr>\n<tr>' EndTable = '</table>' StartTitle = Indent + '<tr>\n' + Indent + Indent +'<td valign="top">' EndTitle = Indent + Indent + '</td>\n' + Indent + Indent + '<td>' BeforeItems = Indent + Indent + Indent + '<table>' AfterItems = Indent + Indent + Indent + '</table>\n' + Indent + Indent + '</td>\n' + Indent + '</tr>' StartItem = Indent + Indent + Indent + Indent + '<tr><td>' EndItem = Indent + Indent + Indent + Indent + '</td></tr>' #if 1 >=len (sys.argv): # print "Need an filename as an argument" # print sys.argv[0] + " <filename>" #else: hw = open (homeworktxt).readlines() Last = 0 # 0: at the start, 1: just printed an item, 2: just printed a title #print StartTable homeworkhtml.append(StartTable) for x in hw: if ' ' == x[0]: if 2 == Last: homeworkhtml.append(BeforeItems) homeworkhtml.append(StartItem) homeworkhtml.append(Indent + Indent + Indent + Indent + Indent + x.strip()) homeworkhtml.append(EndItem) Last = 1 elif '#' != x[0]: if 1 == Last: homeworkhtml.append(AfterItems) homeworkhtml.append(StartTitle) homeworkhtml.append(Indent + Indent + Indent + x.strip()) homeworkhtml.append(EndTitle) Last = 2 # else : # homeworkhtml.append('COMMENT') # homeworkhtm if 1 == Last: homeworkhtml.append(AfterItems) homeworkhtml.append(EndTable) for i in range(0,len(homeworkhtml)): homeworkhtml[i] = homeworkhtml[i] + '\n' homeworkhtmlfile = StringIO.StringIO() homeworkhtmlfile.writelines(homeworkhtml) homeworkhtmlfile.seek(0) # open connection to the server ftp = ftplib.FTP('server', 'login', 'password' ) # go to location of root of website on server ftp.cwd('httpdocs') # put the contends of a file filename = "test.html" ftp.storlines("STOR " + filename, homeworkhtmlfile) # quite the connection ftp.quit() This will result in an html file that you can include (say with php include) into a webpage displaying a table. Examples of the result are currently on my webpage (www.bartk.nl/teach.php ) (if you read this much later look on the waybackmachine). Again, thanks for the suggestions, Best, Bart PS: apologies for the mixing of spaces and tabs. I had a computer crash and have not yet corrected the settings. So this is a combination of default behavior and my preferred settings. -- http://mail.python.org/mailman/listinfo/python-list