欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python處理Excel文件實(shí)例代碼

 更新時(shí)間:2017年06月20日 09:09:12   作者:Berne  
本篇文章主要介紹了Python處理Excel文件實(shí)例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

因?yàn)楣ぷ餍枨?,需要審核一部分query內(nèi)容是否有效,query儲(chǔ)存在Excel中,文本內(nèi)容為頁(yè)面的Title,而頁(yè)面的URL以HyperLink的格式關(guān)聯(lián)到每個(gè)Cell。

于是本能的想到用Python讀取Excel文件之后進(jìn)行文本分析,之后對(duì)每個(gè)鏈接進(jìn)行一次HttpRequest,通過(guò)分析HttpResponse的內(nèi)容來(lái)判斷當(dāng)前鏈接是否有效。

于是上網(wǎng)搜了下,發(fā)現(xiàn)比較主流的是用xlrd的插件,但是實(shí)際使用過(guò)程中發(fā)現(xiàn),無(wú)論如何,最終獲取的hyperlink_map值一直都是None,也沒(méi)空去分析到底是為什么。最后經(jīng)過(guò)搜索發(fā)現(xiàn)一個(gè)叫xlwings的Python庫(kù),可以有效使用。

xlwings:Python For Excel

具體的代碼如下:

# -*- coding=utf-8 -*-
import xlwings as xw
import urllib
import sys

type = sys.getfilesystemencoding() 

def get_html(url):
  page = urllib.urlopen(url)
  html = page.read()
  return unzip(html)

## Debug的時(shí)候發(fā)現(xiàn)無(wú)論怎樣做Decode,最后的結(jié)果都是亂碼
## 后來(lái)發(fā)現(xiàn)是因?yàn)閷?duì)應(yīng)的網(wǎng)頁(yè)做了壓縮處理,所以需要對(duì)獲取的網(wǎng)頁(yè)內(nèi)容手動(dòng)解壓縮
def unzip(data):
  import gzip
  import StringIO
  data = StringIO.StringIO(data)
  gz = gzip.GzipFile(fileobj=data)
  data = gz.read()
  gz.close()
  return data

wb = xw.Book(r"C:\Users\hasee\Desktop\Test.xlsx")
main_data = wb.sheets["Sheet2"]
## 通過(guò)獲取Last Cell來(lái)確定當(dāng)前Sheet的有效行數(shù)與列數(shù)
rownum = main_data.range('A1').current_region.last_cell.row
colnum = main_data.range('A1').current_region.last_cell.column

## 定位column對(duì)應(yīng)的列
col_dict = {"2":"B","3":"C","4":"D","5":"E","6":"F"}

for row in range(1, rownum + 1):
  for col in range(2, colnum + 1):
    query = main_data.range(row, 1).value
    cell = main_data.range(row, col)
    link = cell.hyperlink
    html = get_html(link)
    if "error-container" in html:
      print "%s,%s,%s,%s" % (query, col_dict.get(str(col))+str(row), cell.value, cell.hyperlink)
      ## 對(duì)無(wú)效的鏈接所屬的Cell染色,直接寫入文件
      cell.color = (253,218,4)

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python?Pygame實(shí)戰(zhàn)之五款童年經(jīng)典游戲合集

    Python?Pygame實(shí)戰(zhàn)之五款童年經(jīng)典游戲合集

    本文為大家總結(jié)了五款利用Python+Pygame實(shí)現(xiàn)的童年經(jīng)典游戲:推箱子、滑雪、八分音符醬、保衛(wèi)蘿卜和飛機(jī)大戰(zhàn),快跟隨小編一起學(xué)習(xí)一下
    2022-04-04
  • Django框架的中的setting.py文件說(shuō)明詳解

    Django框架的中的setting.py文件說(shuō)明詳解

    這篇文章主要介紹了Django框架的中的setting.py文件說(shuō)明詳解,這個(gè)文件包含了所有有關(guān)這個(gè)Django項(xiàng)目的配置信息,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • 解決pycharm運(yùn)行時(shí)interpreter為空的問(wèn)題

    解決pycharm運(yùn)行時(shí)interpreter為空的問(wèn)題

    今天小編就為大家分享一篇解決pycharm運(yùn)行時(shí)interpreter為空的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10
  • 在Python中操作日期和時(shí)間之gmtime()方法的使用

    在Python中操作日期和時(shí)間之gmtime()方法的使用

    這篇文章主要介紹了在Python中操作日期和時(shí)間之gmtime()方法的使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-05-05
  • 手把手教你將Flask應(yīng)用封裝成Docker服務(wù)的實(shí)現(xiàn)

    手把手教你將Flask應(yīng)用封裝成Docker服務(wù)的實(shí)現(xiàn)

    這篇文章主要介紹了手把手教你將Flask應(yīng)用封裝成Docker服務(wù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • Python深入淺出分析元類

    Python深入淺出分析元類

    在Python里一切都是對(duì)象(object),基本數(shù)據(jù)類型,如數(shù)字,字符串,函數(shù)都是對(duì)象。對(duì)象可以由類(class)進(jìn)行創(chuàng)建。那么既然一切都是對(duì)象,那么類是對(duì)象嗎?是的,類也是對(duì)象,那么又是誰(shuí)創(chuàng)造了類呢?答案也很簡(jiǎn)單,也是類,一個(gè)能創(chuàng)作類的類,稱之為(type)元類
    2022-07-07
  • 老生常談Python進(jìn)階之裝飾器

    老生常談Python進(jìn)階之裝飾器

    下面小編就為大家?guī)?lái)一篇老生常談Python進(jìn)階之裝飾器。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-05-05
  • Python中的單行、多行、中文注釋方法

    Python中的單行、多行、中文注釋方法

    今天小編就為大家分享一篇Python中的單行、多行、中文注釋方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-07-07
  • python爬蟲http代理使用方法

    python爬蟲http代理使用方法

    在本篇文章里小編給大家整理的是一篇關(guān)于python爬蟲http代理使用方法相關(guān)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)參考下。
    2021-09-09
  • OpenCV清除小面積連通域的實(shí)現(xiàn)方法

    OpenCV清除小面積連通域的實(shí)現(xiàn)方法

    本文主要介紹了OpenCV清除小面積連通域的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-09-09

最新評(píng)論