Did you took a look in python csv package ? http://docs.python.org/library/csv.html you can import it configure then configure a reader parser to match your input files specs. :-) happy coding
On Oct 31, 9:14 pm, Jeff Schwartz <jefftschwa...@gmail.com> wrote: > Like I said, I am not a Python person though I find Python quite easy to > read so perhaps a real Python person can help you with your request. > Certainly, though, splitting your input on tab when it was comma separated > would have presented an issue so I am glad I could offer you some help. > > Good luck. > > Jeff > > > > > > > > > > On Sun, Oct 31, 2010 at 2:54 PM, He Jibo <hej...@gmail.com> wrote: > > Thanks for your quick response. The '\t' is a problem, but I think it is > > not a reason why the code does not work. Even if I do the following code, > > without any code for csv, it does direct my to debug.html after file upload. > > It seems the page is not posted file I clicked 'upload' in the page at > > >http://gae-hejibo.appspot.com/TestUpload > > > class TestUpload(webapp.RequestHandler): > > > '''add item using .csv file''' > > > def get(self): > > > path = os.path.join(os.path.dirname(__file__),'template','TestUpload.html') > > > self.response.out.write(template.render(path, {})) > > > def post(self): > > > path = os.path.join(os.path.dirname(__file__),'template','debug.html') > > > self.response.out.write(template.render(path,{'description':'fileupload'})) > > > --------------------------- > > He Jibo > > Department of Psychology, > > Beckman Institute for Advanced Science and Technology > > University of Illinois, Urbana Champaign, > > 603 East Daniel St., > > Champaign, IL 61820 > > website:www.hejibo.info > > > On Sun, Oct 31, 2010 at 1:43 PM, Jeff Schwartz > > <jefftschwa...@gmail.com>wrote: > > >> I am not a Python person but you said the file was 'comma' separated yet > >> it looks like (again, I am not a Python person) you are using tab instead > >> of > >> comma to split your input. > > >> On Sun, Oct 31, 2010 at 2:29 PM, He Jibo <hej...@gmail.com> wrote: > > >>> Hi, Can someone teach me how to parse a file uploaded to GAE? > > >>> I am writing a feature that users can upload a .csv file, and save > >>> data into the data model. I have already implemented the uploading, > >>> see the link below: > >>>http://gae-hejibo.appspot.com/TestUpload > >>> But I do not know how to parse it, and save in my data model. Below is > >>> my html and processing code. I can upload a csv file, but the data in > >>> the csv is not saved into the data model. Can someone teach me what's > >>> wrong with my code, and how should I do? Thanks! > > >>> ------------------html file code-------------------- > >>> <form name="uploadform"> > >>> <div> > >>> </p>CSV File(Comma Separated Value) File*: </p> > >>> <input type="file" > >>> name="uploadfilename"/> > >>> <input type="submit" value="Upload"></div> > >>> </form> > > >>> ------------------processing code-------------------- > >>> class TestUpload(webapp.RequestHandler): > >>> '''add item using .csv file''' > >>> def get(self): > >>> path = > >>> os.path.join(os.path.dirname(__file__),'template','TestUpload.html') > >>> self.response.out.write(template.render(path, {})) > >>> def post(self): > >>> fileReader = open(self.request.get('uploadfilename')) > >>> csv_file=self.request.get('uploadfilename') > >>> fileReader = csv.reader(csv_file.split("\n")) > > >>> for row in fileReader: > >>> cell = row.split('\t') > > >>> fourchoice = FourChoices() > >>> fourchoice.description = cell[0] > >>> fourchoice.choiceA = cell[1] > >>> fourchoice.choiceB = cell[2] > >>> fourchoice.choiceC = cell[3] > >>> fourchoice.choiceD = cell[4] > >>> fourchoice.a = cell[5] > >>> fourchoice.b = cell[6] > >>> fourchoice.c = cell[7] > >>> fourchoice.answer = cell[8] > >>> fourchoice.put() > >>> path = > >>> os.path.join(os.path.dirname(__file__),'template','debug.html') > >>> self.response.out.write(template.render(path, > >>> {'description':'fileupload'})) > > >>> -- > >>> You received this message because you are subscribed to the Google Groups > >>> "Google App Engine" group. > >>> To post to this group, send email to google-appeng...@googlegroups.com. > >>> To unsubscribe from this group, send email to > >>> google-appengine+unsubscr...@googlegroups.com<google-appengine%2Bunsubscrib > >>> e...@googlegroups.com> > >>> . > >>> For more options, visit this group at > >>>http://groups.google.com/group/google-appengine?hl=en. > > >> -- > >> Jeff > > >> -- > >> You received this message because you are subscribed to the Google Groups > >> "Google App Engine" group. > >> To post to this group, send email to google-appeng...@googlegroups.com. > >> To unsubscribe from this group, send email to > >> google-appengine+unsubscr...@googlegroups.com<google-appengine%2Bunsubscrib > >> e...@googlegroups.com> > >> . > >> For more options, visit this group at > >>http://groups.google.com/group/google-appengine?hl=en. > > > -- > > You received this message because you are subscribed to the Google Groups > > "Google App Engine" group. > > To post to this group, send email to google-appeng...@googlegroups.com. > > To unsubscribe from this group, send email to > > google-appengine+unsubscr...@googlegroups.com<google-appengine%2Bunsubscrib > > e...@googlegroups.com> > > . > > For more options, visit this group at > >http://groups.google.com/group/google-appengine?hl=en. > > -- > Jeff -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.