Not sure if this will resolve your issue, but when you open the file for
writing you'll want it in binary mode when running on windows.

 with open(fullpath, 'wb') as f_out:


On Tue, Feb 4, 2014 at 11:04 PM, Jessica Le <[email protected]> wrote:

> Hi David,
>
> So when I try to print it locally via the terminal, I just get a bunch of
> webdings style text like this:
>
>  ■   ♠☺☻                 ☺   ☻╒═╒£.←►ô +,∙«0   ░     ☺   H   ↨   P   ♂   X
>  ♀   ï   ☻   Σ♦  ♥     ♫ ♂       ♂       ♂       ♂       ▲►  ☺      Sheet1
>    ▲   ♂   Worksheets ♥   ☺
>
> ... basically unreadable. The method works for .txt files flawlessly, so I
> know it has to do with the .xls formatting. I tired converting the .xls
> files to .csv too, but same thing - it's unreadable.
>
> Thanks for your input David!
>
>
> On Tue, Feb 4, 2014 at 9:08 PM, David Kopec <[email protected]> wrote:
>
>> Hi Jessica,
>>
>> I'm not sure this has to do with web.py.  Are you able to print the file
>> when opening it locally in python using the same code?
>>
>> On Monday, February 3, 2014 8:52:21 PM UTC-5, Jessica Le wrote:
>>>
>>> So after doing more research/testing, it seems like the built in
>>> function for file upload only seems to work flawlessly for txt files. Is
>>> there a library out there for other kinds of files?
>>>
>>> On Friday, January 17, 2014 3:58:15 PM UTC-6, Jessica Le wrote:
>>>>
>>>> Hi all,
>>>>
>>>> I'm trying to create an application that lets users upload an .xls file
>>>> that I then take and feed that uploaded.xls file into my program which
>>>> reads and parses it. However, I am having issues with the utf-8 encoding
>>>> for the Excel files. I have searched everywhere on stackoverflow and
>>>> google, but none of them are working.
>>>>
>>>> Here is my code:
>>>>
>>>> def POST(self):
>>>>         x = web.input(calendar_file={}, ref_id='')
>>>>         if x:
>>>>         ref_id = (x.ref_id if x.ref_id else "")
>>>>         filepath=x.calendar_file.filename # replaces the windows-style
>>>> slashes with linux ones.
>>>>         fn=filepath.split('/')[-1] # splits the and chooses the last
>>>> part (the filename
>>>>         filename = "%s/Users/jl98567/Documents/xMatters_calendar_app/test/"
>>>> + fn
>>>>         fullpath = os.path.join('c:', filename % (ref_id))
>>>>         content = x["calendar_file"].file.read()
>>>>         with open(fullpath, 'w') as f_out:
>>>>         if not f_out:
>>>>         raise Exception("Unable to open %s for writing. " % (fullpath))
>>>>         f_out.write(content)
>>>>         print str(x['calendar_file'].value.encode('utf8','ignore'))
>>>>         raise web.seeother('/upload?ref_id=%s&filename=%s' % (ref_id,
>>>> filename))
>>>>
>>>>
>>>> Here is the error;
>>>>
>>>> <type 'exceptions.UnicodeDecodeError'> at / 'ascii' codec can't decode
>>>> byte 0xd0 in position 0: ordinal not in range(128) Python
>>>> C:\Users\jl98567\Documents\xMatters_calendar_app\schedule_web.py in
>>>> POST, line 45 WebPOST http://localhost:8080/
>>>> line 45 is: print str(x['calendar_file'].value.encode('utf8','ignore'))
>>>>
>>>> I have tried decoding it and then encoding it similar to this one:
>>>>
>>>> print str(x['calendar_file'].value.decode('utf-8').encode('utf8',
>>>> 'ignore'))
>>>>
>>>>  but still doesn't work.
>>>>
>>>> Any suggestions?
>>>>
>>>> Thanks much!
>>>>
>>>>  --
>> You received this message because you are subscribed to a topic in the
>> Google Groups "web.py" group.
>> To unsubscribe from this topic, visit
>> https://groups.google.com/d/topic/webpy/_i64Ym_Ubxg/unsubscribe.
>> To unsubscribe from this group and all its topics, send an email to
>> [email protected].
>>
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/webpy.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "web.py" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/webpy.
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
You received this message because you are subscribed to the Google Groups 
"web.py" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/webpy.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to