Я пытаюсь создать веб-приложение, которое позволяет пользователям загружать файл .xls, который затем я беру и передаю файл uploaded.xls в свою программу, которая читает и анализирует его. В настоящее время я использую Python 2.7 в среде Web.py.Загрузка и кодирование .xls Файл Python Web.py
Однако у меня возникают проблемы с кодировкой utf-8 для файлов Excel. Этот метод работает только для файлов .txt & .csv, но когда я пытаюсь выполнить образы или .pdf, они не работают, поэтому я не уверен, что встроенная в web.py библиотека не поддерживает файлы Excel , Когда я загружаю файл Excel, он просто выплевывает нечитаемый контент, такой как:
■ ♠ ☺☻ ☺☻ ☺ ☻╒═╒ £. ← ►ô +, ∙ «0 ░ ☺ H ↨ P ♂ X ♀ ï ☻ Σ ♦ ♥ ♫ ♂ ♂ ♂ ♂ ▲ ► ☺ Лист1 ▲ ♂ Worksheets ♥ ☺
Вот мой код:
class index:
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 x['calendar_file'].value
raise web.seeother('/upload?ref_id=%s&filename=%s' % (ref_id, filename))
Теперь, когда я пытаюсь кодировать:
print x['calendar_file'].value.encode('utf-8')
я получаю следующее сообщение об ошибке:
at/'ascii' codec can't decode byte 0xd0 in position 0: ordinal not in range(128)
Странная вещь, что я знаю, кодирующая его UTF-8 работает на моем приложении, не на основе Интернета или с помощью метода загрузки web.py файла. Поэтому я не могу понять, в чем проблема.
Например:
content = str(sheet.cell(row,0).value.encode('utf8'))
, что отлично работает с использованием xlrd и xlwt методы питон-первенствовать.
Любые предложения?
Спасибо большое!
Что вы пытаетесь достичь путем «кодирования» файла .xls? Это не имеет никакого смысла. – CodeBlue
Я просто пытаюсь устранить эту ошибку выше, которую я получаю. – lovelejess
Но вы, очевидно, получите сообщение об ошибке, если пытаетесь сделать что-то неправильно. Итак, почему вы пытаетесь «кодировать» .xls-файл в первую очередь? – CodeBlue