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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...

發(fā)布時(shí)間:2025/3/20 python 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht... 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原標(biāo)題:Python 讀取各類文件格式的文本信息 | doc,excel,html,mht

眾所周知,python最強(qiáng)大的地方在于,python社區(qū)匯總擁有豐富的第三方庫(kù),開源的特性,使得有越來越多的技術(shù)開發(fā)者來完善。

python的完美性。

未來人工智能,大數(shù)據(jù)方向,區(qū)塊鏈的識(shí)別和進(jìn)階都將以python為中心來展開。

咳咳咳! 好像有點(diǎn)打廣告的嫌疑了。

當(dāng)前互聯(lián)網(wǎng)信息共享時(shí)代,最重要的是什么?是數(shù)據(jù)。最有價(jià)值的是什么?是數(shù)據(jù)。最能直觀體現(xiàn)技術(shù)水平的是什么?還是數(shù)據(jù)。

所以,今天我們要分享的是:如何來獲取各個(gè)文件格式的文本信息。

普通文件的格式 一般分為: txt普通文本信息,doc word文檔,html網(wǎng)頁內(nèi)容,excel表格數(shù)據(jù),以及特殊的mht文件。

一、Python處理html網(wǎng)頁信息

html類型的文本數(shù)據(jù),內(nèi)容是由前端代碼書寫的標(biāo)簽+文本數(shù)據(jù)的格式,可以直接在chrome瀏覽器打開,清楚 的展示出文本的格式。

python 獲取html文件的內(nèi)容和獲取txt文件的方法相同,直接打開文件讀取就可以了。

讀取代碼如下:

with open(html_path, "r", encoding="utf-8") as f:

file = f.read()

file 是html文件的文本內(nèi)容。是一個(gè)網(wǎng)頁標(biāo)簽的格式內(nèi)容。

二、Python處理excel表格信息

python擁有直接操作excel表格的第三方庫(kù)xlwt,xlrd。調(diào)用對(duì)應(yīng)的方法就可以讀寫excel表格數(shù)據(jù)。

讀取excel操作代碼如下:

filepath = "C:\UsersAdministratorDesktop新建文件夾笨笨 前程6份 武漢.xls"

sheet_name = "UserList"

rb = xlrd.open_workbook(filepath)

sheet = rb.sheet_by_name(sheet_name)

# clox_list = [0, 9, 14, 15, 17]

for row in range(1, sheet.nrows):

w = WriteToExcel()

# for clox in clox_list:

name = sheet.cell(row, 0).value

phone = sheet.cell(row, 15).value

address = sheet.cell(row, 9).value

major = sheet.cell(row, 14).value

age = sheet.cell(row, 8).value

其中row是表格數(shù)據(jù)對(duì)應(yīng)的行數(shù), cell獲取具體行數(shù),列數(shù)的具體數(shù)據(jù)。

三、Python讀取doc文檔數(shù)據(jù)

python讀取doc文檔是最麻煩的。處理邏輯復(fù)雜。處理的方式也有很多種。

python 沒有直接處理doc文檔的第三方庫(kù),但是有一個(gè)處理docx的第三方庫(kù)。可以通過將doc文件轉(zhuǎn)換為docx文件,再調(diào)用第三方python庫(kù)pydocx來讀取doc文檔的內(nèi)容。

這里需要注意的是,不要直接修改doc的后綴來修改成docx文件。直接通過修改后綴獲取的docx文件,pydocx無法讀取內(nèi)容。

我們可以使用另外一個(gè)庫(kù)來修改doc為docx。

具體代碼如下:

def doSaveAas(self, doc_path):

"""

將doc文檔轉(zhuǎn)換為docx文檔

:rtype: object

"""

docx_path = doc_path.replace("doc", "docx")

word = wc.Dispatch('Word.Application')

doc = word.Documents.Open(doc_path) # 目標(biāo)路徑下的文件

doc.SaveAs(docx_path, 12, False, "", True, "", False, False, False, False) # 轉(zhuǎn)化后路徑下的文件

doc.Close()

word.Quit()

代碼所需的包接口:

import os

import zipfile

from win32com import client as wc

import xlrd

from bs4 import BeautifulSoup

from pydocx import PyDocX

from lxml import html

from xpath_content import XpathContent

from write_to_excel import WriteToExcel

python處理docx文檔的方法有很多種,具體使用情況,根據(jù)個(gè)人需求來決定。

No.1 解壓docx文件

docx文件的原理,本質(zhì)上就是一個(gè)壓縮的zip文件,通過解壓以后,就可以獲取原來文件的各個(gè)內(nèi)容。

docx解壓后的文件結(jié)構(gòu)如下:

docx文件的文本內(nèi)容存儲(chǔ)結(jié)構(gòu)如下:

文本內(nèi)容存儲(chǔ)于word/document.xml文件中。

第一種方法,我們就可以先將docx還原成zip壓縮文件,再解壓zip文件,讀取word/document.xml文件的內(nèi)容就ok了。

具體操作代碼如下:

def get_content(self):

"""

獲取docx文檔的文本內(nèi)容

:rtype: object

"""

os.chdir(r"C:UsersAdministratorDesktop新建文件夾") # 改變目錄到文件的目錄

#

os.rename("51 2014.09.12 1份Savannah.docx", "51 2014.09.12 1份Savannah.ZIP") # 重命名為zip文件

f = zipfile.ZipFile('51 2014.09.12 1份Savannah.ZIP', 'r') # 進(jìn)行解壓

xml = f.read("word/document.xml")

wordObj = BeautifulSoup(xml.decode("utf-8"))

# print(wordObj)

texts = wordObj.findAll("w:t")

content = []

for text in texts:

content.append(text.text)

content_str = "".join(content)

return content_str

最后獲取到的就是docx文檔的所有文本數(shù)據(jù)了。

No.2 將docx文檔轉(zhuǎn)換成python能夠處理的文本格式

第一種方法,是依據(jù)docx文檔的原理來獲取數(shù)據(jù),流程有點(diǎn)繁瑣,有沒有能直接讀取docx文檔內(nèi)容的方法呢?答案,肯定是沒有的,別想了,洗洗回家睡吧。

直接讀取docx文檔的方法沒有,有沒有能夠?qū)ocx文檔轉(zhuǎn)換成python能夠輕松處理的文本格式呢?

這個(gè)可以有,前面說了,python擁有大量豐富的第三方庫(kù)(先夸一波我大python),歷經(jīng)千辛萬苦終于找到了,一個(gè)能轉(zhuǎn)換docx文檔格式的第三方庫(kù),pydocx,pydocx庫(kù)中有個(gè)方法pydocx.to_html()就可以直接將docx文檔轉(zhuǎn)換為html文件,怎么樣?意不意外,驚喜不驚喜!

第二種方法,轉(zhuǎn)換文本格式的代碼如下:

def docx_to_html(self, docx_path):

"""

docx文檔轉(zhuǎn)換成html響應(yīng)

:rtype: object

"""

# docx_path = "C:\UsersAdministratorDesktop新建文件夾\51 2014.09.12 1份Savannah.docx"

response = PyDocX.to_html(docx_path)

獲取到的response是html文件內(nèi)容。

四、Python處理mht文件

mht文件是一種只能在IE瀏覽器上展示的文本格式,在chrome瀏覽器中打開是一堆的亂碼。

No.1 偽造IE請(qǐng)求mht文件內(nèi)容

最基礎(chǔ)的讀取mht文本的方法就是偽造IE瀏覽器請(qǐng)求。

調(diào)用requests庫(kù),發(fā)送get請(qǐng)求網(wǎng)頁鏈接,構(gòu)造IE的請(qǐng)求頭信息。

理論上來說,這種方法是可行的。但是呢,不建議用,原因大家都懂得。

No.2 轉(zhuǎn)換文件格式

好了說正經(jīng)的方法,猜測(cè)mht文件能否修改成其他文件格式來直接讀取呢?

docx,不行;html,不行;excel,更不用說了。

真相只有一個(gè)!!!

直接修改后綴得到的docx,無法讀取。

so,我們想到的方法是什么呢。沒錯(cuò),就是修改成doc文檔。

方法是匪夷所思的,但也是靈感一現(xiàn)。

mht可以直接通過修改后綴轉(zhuǎn)換成doc文檔,doc文檔讀取文本內(nèi)容的方法具體參考上面讀取doc文檔的方法。

如何獲取html文本的內(nèi)容?

html文本的內(nèi)容是網(wǎng)頁結(jié)構(gòu)標(biāo)簽數(shù)據(jù),取出文本的方式是:re正則,或者xpath。

后續(xù),小伙伴有需要的話,會(huì)再開一章詳細(xì)了解re,xapth的使用規(guī)則。

來源網(wǎng)絡(luò),侵權(quán)聯(lián)系刪除返回搜狐,查看更多

責(zé)任編輯:

總結(jié)

以上是生活随笔為你收集整理的python读取html文件中的表格数据_Python 读取各类文件格式的文本信息 | doc,excel,html,mht...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。