Chapter 4

201601001

大綱

  • 解釋 object again
  • 解釋 import
  • 解釋 xlrd
  • 作業

說明 class

解釋 import

很多時候我們會需要借用別人已經寫好的物件來操作特定功能,因此我們會需要透過import 來將程式導入.比方說我們想要引用隨機數,那我們可以透過random這個別人寫好的module來使用,例如:

import random
print random.randint(1,100)

這就是引用random 這個寫好的物件,裡面自己擁有的函數randint,然後輸出1到100之間的隨機整數.

解釋 xlrd

很多時候我們會需要讀取資料從excel之中讀取資料,這個時候透過xlrd裡面的open_workbook這個函數就能幫助我們讀取特定excel檔案(限2007之前.xls檔案),然後夠過這個檔案再去讀取特定頁面 sheets(),就可以得到該張資料表table.最後透過table.nrows與table.ncols就能讀到這張表格的總欄數與總列數.其中table.row_values(列數)可以協助我們讀到特定列的每行資料.當然替代方案則是table.cell(列數,行數).value也可以取值.

可以參考連結

import xlrd

def open_excel(file= 'test.xlsx'): 
  try: 
    data = xlrd.open_workbook(file) 
    return data 
  except Exception,e: 
    print str(e) 
 #  file:Excel文件路徑     colnameindex:表頭列所在  ,by_index:sheet的索引 

def excel_table_byindex(file= 'test.xls',colnameindex=0,by_index=0): 
  data = open_excel(file) 
  table = data.sheets()[by_index] 
  nrows = table.nrows #行数 
  ncols = table.ncols #列数 
  colnames =  table.row_values(colnameindex) #取出某一行數值
  list =[] 
  for rownum in range(1,nrows): 
    row = table.row_values(rownum) 
    if row: 
      app = {} 
      for i in range(len(colnames)): 
        app[colnames[i]] = row[i]  
      list.append(app) 
  return list

作業

  1. 建立一個excel 檔案 一行記錄數學成績 30 50 40 一行記錄英文成績 10 30 40 excel
  2. 透過python讀入後,將各科成績由大到小排列,最後輸出成csv檔案
  3. 數學成績 英文成績
  4. 50 40
  5. 40 30
  6. 30 10

results matching ""

    No results matching ""