在pandas中读取多个文件

我似乎无法find解决这个问题。

我用pandas阅读我的第一个excel文件并提取信息。 然后我使用这些信息来更新一个新的excel文件,然后更新公式。

我想再次使用pandas阅读新文件,但它仍然在阅读原始文件。 我用filename.close()来closures第一个文件,但它仍然记得从该文件的一切。 它不会阅读第二个文件。

这是读取第一个文件

 firstDate = [] dateHeader = [] dataList = []` xl = pandas.ExcelFile(xlsx) sheets = xl.sheet_names df = xl.parse(sheets[2]) for index, row in df.iterrows(): dateStamp = row[2].date() creationMonth = dateStamp.month creationDay = dateStamp.day creationYear = dateStamp.year creationDate = datetime.date(creationYear, creationMonth, 1) endDate = datetime.datetime.now() #Create a list to hold all the dates dateList = [] #Iterate through the different dates for i, dt in enumerate(rrule(MONTHLY, dtstart=creationDate, until=endDate)): #Format the date into the correct format date = dt.strftime("%m/%d/%Y") #Create a condition to skip of the present date if i > 0: #Append the date to the dateList dateList.append(date) #Get the length of the date list lenLst = len(dateList) #Create the date range list dateRangeList = [] #Iterate through the date list for i, value in enumerate(dateList): #Create a check to not fo beyond the bounds of the list if i != (lenLst - 1): #Get the start date sRange = dateList[i] #Get the end date eRange = dateList[i + 1] #Set the date range dateRange = [sRange, eRange] #Append the rnage to the date range list dateRangeList.append(dateRange) if dateStamp not in firstDate: firstDate.append(dateStamp) baseData = [row[0], '%s/%s/%s' %(creationMonth, creationDay, creationYear), row[3], dateRangeList] dataList.append(baseData) xl.close() 

这读取第二个文件

 for i, value in enumerate(dataList): wb = openpyxl.load_workbook(xlsx) worksheets = wb.sheetnames worksheet = wb.get_sheet_by_name(worksheets[0]) rowCoordinate = i meterName = value[0] creationDate = value[1] units = value[2] worksheet.cell(row=1, column=2).value = meterName wb.save(copyXlsx) dateList = [] for k, dateRange in enumerate(value[3]): sDate = dateRange[0] eDate = dateRange[1] wb = openpyxl.load_workbook(copyXlsx) worksheets = wb.sheetnames worksheet = wb.get_sheet_by_name(worksheets[0]) worksheet.cell(row=2, column=2).value = sDate worksheet.cell(row=3, column=2).value = eDate wb.save(copyXlsx1) print meterName, dateRange xl1 = pandas.ExcelFile(copyXlsx1) sheets1 = xl1.sheet_names df = xl1.parse(sheets1[0]) print df