python 利用 xdrlib 操作追加excel一種思路
阿新 • • 發佈:2018-12-30
今天在做一個專案,需要用到將網頁上爬取的資料整理出來並存入excel檔案中,剛開始使用的是xlwt控制元件來做,但是發現每次迴圈寫入excel後,檔案原來的內容都會被覆蓋,後來網上搜集資料 使用 xdrlib 來做,但xdrlib 只能追加一次,它是利用一種複製檔案的思路來做的,當迴圈追加excel的時候檔案原來的內容還是會被覆蓋(這個應該很好理解)。左思右想以後覺得得用檔案的刪除和重新命名來做:
注意:其實xdrlib 的思路就是用一箇中間檔案(data.out.xls)來實現內容追加的,原來的檔案叫(data.xls),因為你最初的思路是想往data.xls檔案中追加新的額內容,但是每次追加就會覆蓋原來的內容,使用xdrlib 後可以追加一次,那麼這時候你就可以將原來的data.xls檔案刪除,然後將data.out.xls檔案重新命名成data.xls。這樣就相當於每次都是對已經追加了內容的檔案再次追加新的內容,親測可行。下面是我的程式碼
def zhuijia(row,col,values,file_name='data.xls'): r_xls = ExcelRead.open_workbook(file_name) r_sheet = r_xls.sheet_by_index(0) rows = r_sheet.nrows w_xls = copy(r_xls) sheet_write = w_xls.get_sheet(0) sheet_write.write(row,col,values) w_xls.save(file_name + '.out' + os.path.splitext(file_name)[-1]); try: os.remove('data.xls') os.rename('data.xls.out.xls', 'data.xls') except WindowsError: pass
哈哈,大神門如果覺得這種方式太笨,請見諒,