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.

Reply via email to