日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python3爬虫初探(六)之EXCEL

發布時間:2024/1/23 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python3爬虫初探(六)之EXCEL 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

 在爬取數據之后,數據的保存就成為一個新的問題,一般不太大的的數據存儲到EXCEL就可以了。這里介紹一個python的第三方庫——xlsxwriter.

這個庫的安裝就不介紹了,pip就可以,不用FQ。這里僅介紹一些簡單常用的命令。

 首先,說明一下,xlsxwriter只能寫入數據,不能讀取和修改數據(讀取和修改可以用xlrd和xlwt)。上代碼。

?

import xlsxwriterworkbook = xlsxwriter.Workbook("xlsx_test.xlsx") # 創建一個名為 xlsx_test.xlsx 的工作薄 worksheet1 = workbook.add_worksheet("ID") # 新增一個工作表,可傳入表名,不傳默認為sheet1 worksheet2 = workbook.add_worksheet("姓名") # 重復命令可新增多張數據表# 設置列的參數,20,10代表字符數 worksheet1.set_column("A:A", 20) worksheet1.set_column('B:B', 10)# 插入數據,傳入三個參數 worksheet1.write(0, 0, "hello world!") # 三個參數分別為:行,列,數據。注意行列索引值從零開始。# 最后要關閉工作薄,完成數據的保存 workbook.close()

xlrd和xlwt操作Excel文件學習

一、xlrd和xlwt的安裝

? ? ? ? xlrd和xlwt是python的第三方庫,所以是需要自己安裝的,可以在python的官網https://pypi.python.org/pypi下載該模塊來安裝,也可以通過其他手段,比如easy_install或者pip,我在Win7環境下已經安裝好pip,所以就在命令符窗口中用如下命令來安裝xlrd和xlwt。

pip install xlrd

pip install xlwt

運行過程如下:


二、xlrd使用介紹

?? ?1、導入模塊
? ? ? ? import xlrd
? ?2、打開Excel文件讀取數據
? ? ? ? data = xlrd.open_workbook('excelFile.xls')
? ?3、使用技巧
? ? ? ? 獲取一個工作表
? ? ? ? table = data.sheets()[0] ? ? ? ? ?#通過索引順序獲取
? ? ? ? table = data.sheet_by_index(0) #通過索引順序獲取

? ? ? ? table = data.sheet_by_name(u'Sheet1')#通過名稱獲取


? ? ? ? 獲取整行和整列的值(數組)  
? ? ? ? table.row_values(i)
? ? ? ? table.col_values(i)
?
? ? ? ? 獲取行數和列數  
? ? ? ? nrows = table.nrows?
? ? ? ? ncols = table.ncols
? ? ? ?
? ? ? ? 循環行列表數據
? ? ? ? for i in range(nrows):
? ? ? ? ? ? ? ?print table.row_values(i)
?
? ? ? ? 單元格
? ? ? ? cell_A1 = table.cell(0,0).value
? ? ? ? cell_C4 = table.cell(2,3).value
?
? ? ? ? 使用行列索引
? ? ? ? cell_A1 = table.row(0)[0].value
? ? ? ? cell_A2 = table.col(1)[0].value
?
? ? ? ? 簡單的寫入
? ? ? ? row = 0
? ? ? ? col = 0
?
? ? ? ? # 類型 0 empty,1 string, 2 number, 3 date, 4 boolean, 5 error
? ? ? ? ctype = 1 value = '單元格的值'
? ? ? ? xf = 0 # 擴展的格式化
? ? ? ? table.put_cell(row, col, ctype, value, xf)
? ? ? ? table.cell(0,0) ?#單元格的值'
? ? ? ? table.cell(0,0).value #單元格的值'



用例如下: [python] view plain copy
  • #?_*_?coding:utf-8?_*_??
  • ??
  • #----------------------------------------------------------------------------??
  • #?import?modules???
  • #----------------------------------------------------------------------------??
  • import?os??
  • import?xlrd??
  • from?datetime?import?date,datetime??
  • ??
  • #打開Excel文件??
  • workbook?=?xlrd.open_workbook('09-10.11-38-12-HTTP-GOOD-1-Lte1sDataStat_Charts.xlsx')??
  • ??
  • #輸出Excel文件中所有sheet的名字??
  • print?workbook.sheet_names()??
  • ??
  • #根據sheet索引或者名稱獲取sheet內容??
  • Data_sheet????=?workbook.sheets()[0]??
  • CdfData_sheet?=?workbook.sheet_by_index(1)??
  • Charts_sheet??=?workbook.sheet_by_name(u'Charts')??
  • ??
  • #獲取sheet名稱、行數和列數??
  • print?Data_sheet.name,????Data_sheet.nrows,????Data_sheet.ncols,\??
  • ??????CdfData_sheet.name,?CdfData_sheet.nrows,?CdfData_sheet.ncols,\??
  • ??????Charts_sheet.name,??Charts_sheet.nrows,??Charts_sheet.ncols??
  • ??
  • #獲取整行和整列的值(列表)??????
  • rows?=?Data_sheet.row_values(0)?#獲取第一行內容??
  • cols?=?Data_sheet.col_values(1)?#獲取第二列內容??
  • #print?rows??
  • #print?cols??
  • ??
  • #獲取單元格內容??
  • cell_A1?=?Data_sheet.cell(0,0).value??
  • cell_C1?=?Data_sheet.cell(0,2).value??
  • cell_B1?=?Data_sheet.row(0)[1].value??
  • cell_D2?=?Data_sheet.col(3)[1].value??
  • print?cell_A1,?cell_B1,?cell_C1,?cell_D2??
  • ??
  • #獲取單元格內容的數據類型??
  • #ctype:0?empty,1?string,?2?number,?3?date,?4?boolean,?5?error??
  • print?'cell(0,0)數據類型:',?Data_sheet.cell(0,0).ctype??
  • print?'cell(1,0)數據類型:',?Data_sheet.cell(1,0).ctype??
  • print?'cell(1,1)數據類型:',?Data_sheet.cell(1,1).ctype??
  • print?'cell(1,2)數據類型:',?Data_sheet.cell(1,2).ctype??
  • ??
  • #獲取單元格內容為日期的數據??
  • date_value?=?xlrd.xldate_as_tuple(Data_sheet.cell_value(1,0),workbook.datemode)??
  • print?date_value??
  • print?'%d:%d:%d'?%(date_value[3:])??
  • ??
  • d?=?{'11:25:59':[1,?2,?3],?'11:26:00':[2,?3,?4],?'11:26:01':[3,?4,?5]}??
  • print?d['11:25:59']??
  • print?d['11:26:00']??
  • print?d['11:26:01']??
  • ??
  • print?d['11:25:59'][0]??
  • print?d['11:26:00'][0]??
  • print?d['11:26:01'][0]??

  • 三、xlwt使用介紹

    Xlwt簡介
    功能:用于生成97/2000/XP/2003xls文件。
    Python版本:Python2.3 to 2.7
    當前版本:0.7.5
    平臺:跨平臺
    ? ? ? ??
    相關模塊
    csv ? ? ? ? ? ? python標準模塊。推薦。
    xlrd ? ? ? ? ? ?讀取 .xls, .xlsx 文件。
    xlutils ? ? ? xlrd和xlwt的集合。
    openpyxl 讀寫 Excel 2007 xlsx/xlsm文件 。純python,效率不高。
    Matplotlib ? ? ?2D作圖模塊,適用于基于excel作圖。
    Pywin32 ? python windows擴展 ,不跨平臺,通過COM口連接excel。
    Pyxll ? ? ? ? ? 在excel中使用python替代vbs。http://www.pyxll.com/。類似模塊有pyinex。Python For Excel http://www.opentradingsystem.com/PythonForExcel/main.html
    XlsxWriter ? ? ?寫xlsx文件。純python。
    ?
    快速入門
    下面例子,創建一個名為mini.xls的文件,它有一個空sheet:'xlwt was here'。代碼見mini.py。
    fromxlwt import *
    w =Workbook()
    ws = w.add_sheet('xlwtwas here')
    w.save('mini.xls')?

    Workbook類初始化時有encoding和style_compression參數。

    encoding,設置字符編碼,一般要這樣設置:w = Workbook(encoding='utf-8'),就可以在excel中輸出中文了。默認是ascii。當然要記得在文件頭部添加:

    # -*- coding: utf-8-*-

    style_compression 表示是否壓縮,不常用。
    Workbook 還有一些屬性:
    Owner 設置文檔所有者。
    country_code: 國家碼
    wnd_protect: 窗口保護
    obj_protect: 對象保護
    Protect: 保護
    backup_on_save: 保存時備份
    Hpos: 橫坐標
    Vpos: 縱坐標
    Width: 寬度
    Height: 高度
    active_sheet: 活動sheet
    tab_width: tab寬度
    wnd_visible: 窗口是否可見
    wnd_mini: 窗口最小化
    hscroll_visible: 橫向滾動條是否可見。
    vscroll_visible: 縱向滾動條是否可見。
    tabs_visible: tab是否可見。
    dates_1904: 是否使用1904日期系統
    use_cell_values: 單元格的值
    default_style: 默認樣式
    colour_RGB: 顏色

    方法有:add_style,add_font,add_str,del_str,str_index,add_rt,rt_index,add_sheet,get_sheet,raise_bad_sheetname,convert_sheetindex,setup_xcall,add_sheet_reference。


    用例如下

    [python] view plain copy
  • #?_*_?coding:utf-8?_*_??
  • ??
  • #----------------------------------------------------------------------------??
  • #?import?modules???
  • #----------------------------------------------------------------------------??
  • import?os??
  • import?xlwt???????????
  • ??
  • ??
  • def?set_style(name,?height,?bold?=?False):??
  • ????style?=?xlwt.XFStyle()???#初始化樣式??
  • ??????
  • ????font?=?xlwt.Font()???????#為樣式創建字體??
  • ????font.name?=?name??
  • ????font.bold?=?bold??
  • ????font.color_index?=?4??
  • ????font.height?=?height??
  • ??????
  • ????style.font?=?font??
  • ????return?style??
  • ??
  • ??????
  • def?write_excel():??
  • ????#創建工作簿??
  • ????workbook?=?xlwt.Workbook(encoding='utf-8')????
  • ????#創建sheet??
  • ????data_sheet?=?workbook.add_sheet('demo')????
  • ????row0?=?[u'字段名稱',?u'大致時段',?'CRNTI',?'CELL-ID']??
  • ????row1?=?[u'測試',?'15:50:33-15:52:14',?22706,?4190202]??
  • ??????
  • ????#生成第一行和第二行??
  • ????for?i?in?range(len(row0)):??
  • ????????data_sheet.write(0,?i,?row0[i],?set_style('Times?New?Roman',?220,?True))??
  • ????????data_sheet.write(1,?i,?row1[i],?set_style('Times?New?Roman',?220,?True))??
  • ??????
  • ????#保存文件??
  • ????workbook.save('demo.xls')?????
  • ??????
  • ??????
  • if?__name__?==?'__main__':???
  • ????write_excel()??
  • ????print?u'創建demo.xlsx文件成功'??
  • 參考資料

    下載地址:https://pypi.python.org/pypi/xlwt/0.7.5

    官方網址:http://www.python-excel.org/

    介紹膠片:http://www.simplistix.co.uk/presentations/python-excel.pdf


    總結

    以上是生活随笔為你收集整理的python3爬虫初探(六)之EXCEL的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。