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
作業
- 建立一個excel 檔案 一行記錄數學成績 30 50 40 一行記錄英文成績 10 30 40
- 透過python讀入後,將各科成績由大到小排列,最後輸出成csv檔案
- 數學成績 英文成績
- 50 40
- 40 30
- 30 10