Я пытаюсь прочитать значения из нескольких файлов Excel с помощью следующей функции:
def uploadtranscipt(self):
self.student=[]
self.transcript_upload = tkFileDialog.askopenfilename(filetypes=(("Excel files", ".xls"), ("All files", "*.*")),multiple=1)
self.student.append(self.transcript_upload)
self.book = xlrd.open_workbook(str(self.transcript_upload))
self.sheet = self.book.sheet_by_index(0)
for i in self.student:
for stu in i :
self.id = (self.sheet.cell(0,0).value).encode("utf-8")
print self.id
self.name = (self.sheet.cell (0,1).value).encode("utf-8")
print self.name
self.dep = (self.sheet.cell(0, 2).value).encode("utf-8")
print self.dep
self.gpa = self.sheet.cell(0, 3).value
print self.gpa
Однако возникает следующее исключение:
IOError: [Errno 22] invalid mode ('rb') or filename: "(u'C:/Users/r.la/Desktop/programming 2/Transcripts/Sample27.xls', u'C:/Users/r.la/Desktop/programming 2/Transcripts/Sample26.xls')"
Я хочу взять значения из более чем одного файла Excel, но это выдает мне эту ошибку, когда я выбираю более файла
tkFileDialog.askopenfilename
возвращает кортеж имен файлов. Однако для открытия xlrd.open_workbook
требуется только одно имя файла.
Если вы хотите читать данные из нескольких файлов, используйте цикл for
для обработки одного файла за раз:
def uploadtranscript(self):
self.student=[]
self.transcript_upload = tkFileDialog.askopenfilename(filetypes=(("Excel files", ".xls"), ("All files", "*.*")),multiple=1)
self.student.append(self.transcript_upload)
for transcript_fname in self.transcript_upload:
self.book = xlrd.open_workbook(transcript_fname)
self.sheet = self.book.sheet_by_index(0)
for i in self.student:
for stu in i:
self.id = (self.sheet.cell(0,0).value).encode("utf-8")
print self.id
self.name = (self.sheet.cell (0,1).value).encode("utf-8")
print self.name
self.dep = (self.sheet.cell(0, 2).value).encode("utf-8")
print self.dep
self.gpa = self.sheet.cell(0, 3).value
print self.gpa
это просто дамп кода и сообщение об ошибке. Вместо этого это должен быть вопрос программирования. Итак, какой у вас вопрос? что ты хочешь делать?