用xlsxwriter python写多个excel文件

有没有办法用xlsxwriter创build多个excel文件?

from itertools import chain import glob ,csv, sys, os openSoundingFile = 'D:/apera/Workspace/Sounding2/*.txt' for filename in glob.glob(openSoundingFile): newName = filename spamReader = csv.reader(open(filename, 'rb'), delimiter=';',quotechar='"') workbook = xlsxwriter.Workbook('D:/apera/Workspace/Sounding2/' + newName[:-4] + '.xlsx' sheet = workbook.add_worksheet('Original data') for rowx, row in enumerate(spamReader): for colx, value in enumerate(row): sheet.write(rowx, colx, value) workbook.close() 

所以我想保存所有的txt文件exel文件。 我认为问题在这里

 workbook = xlsxwriter.Workbook('D:/apera/Workspace/Sounding2/' + newName[:-4] + '.xlsx' 

如果我不使用+ newName[:-4] +它将工作,但只写1 excel文件。 有没有办法做到这一点?

该错误表明,您将文件的path结合到两个文件之上:

 'D:/apera/Workspace/Sounding2/bla.txtD:/apera/Workspace/Sounding2/' 

这对我来说是这样的:

 import xlsxwriter import glob ,csv openSoundingFile = 'D:/apera/Workspace/Sounding2/*.txt' for filename in glob.glob(openSoundingFile): spamReader = csv.reader(open(filename, 'rb'), delimiter=';',quotechar='"') # Note that filename is the full path already! Just [:-4] to remove .txt workbook = xlsxwriter.Workbook(filename[:-4] + '.xlsx') sheet = workbook.add_worksheet('Original data') for rowx, row in enumerate(spamReader): for colx, value in enumerate(row): sheet.write(rowx, colx, value) workbook.close()