最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python 實(shí)現(xiàn)存儲數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決

 更新時間:2021年03月08日 10:06:40   作者:明宇李  
這篇文章主要介紹了python 實(shí)現(xiàn)存儲數(shù)據(jù)到txt和pdf文檔及亂碼問題的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

第一、幾種常用方法

讀取TXT文檔:urlopen()

讀取PDF文檔:pdfminer3k

第二、亂碼問題

(1)、

from urllib.request import urlopen
#訪問wiki內(nèi)容
html = urlopen("https://en.wikipedia.org/robots.txt")
print(html.read())

輸出的結(jié)果中出現(xiàn)亂碼原因:

計算機(jī)只能處理0和1兩個數(shù)字,所以想要處理文本,必須把文本變成0和1這樣的數(shù)字,最早的計算機(jī)使用八個0和1表示一個字節(jié),所以最大能夠表示整數(shù)是255=11111111.如果想要表示更大的數(shù),必須使用更多的字節(jié)。

由于計算機(jī)是美國人發(fā)明的,所以最早只有127個字符被編寫進(jìn)計算機(jī),即常見的阿拉伯?dāng)?shù)字,字母大小寫,以及鍵盤上的符號。此編碼被稱為ASCII編碼,比如大寫字母A的ASCII編碼是65,65再被轉(zhuǎn)換二進(jìn)制01000001,即是計算機(jī)處理的東西。

顯然,ASCII不能表示中文,故中國制定了自己的GB2312編碼,并且兼容ASCII編碼。問題是:使用GB2312編碼的慕課網(wǎng)三個字,假設(shè)編碼為61,62,63.但在ASCII碼表可能是其他字符。如下圖示,日文中的616263編碼成其他字符,打開后意思出錯。

解決方法:

國際上的unicode編碼,整合全世界所有編碼。故unicode編碼的內(nèi)容在任一臺計算機(jī)用unicode仍正常打開

又對于A,ASCII編碼為01000001,Unicode編碼:0000000001000001此時浪費(fèi)空間

故出現(xiàn)UTF-8編碼:01000001此時用兩個八位存儲中文。

(2)、記事本使用unicode編碼,將記事本存到計算機(jī)時,將轉(zhuǎn)化為utf-8儲存。

在計算機(jī)中打開文本時,將轉(zhuǎn)化為unicode編碼

存儲原因:使用utf-8儲存節(jié)省空間,使用unicode打開保證最大的兼容

(3)、服務(wù)器讀取uncode編碼的文檔,轉(zhuǎn)化為utf-8格式傳給瀏覽器。因?yàn)榫W(wǎng)絡(luò)帶寬昂貴,轉(zhuǎn)化為了減少負(fù)擔(dān)。

(4)、python3字符串默認(rèn)使用Unicode編碼,所以python3支持多種語言

以Unicode表示的str通過encode()方法可以編碼為指定的bytes

如果bytes使用ASCII編碼,遇到ASCII碼表沒有的字符會以\x##表示,此時只用‘\x##'.decode('utf-8')即可

(5)、解決方法

from urllib.request import urlopen
#訪問wiki內(nèi)容
html = urlopen("https://en.wikipedia.org/robots.txt")
print(html.read().decode("utf-8"))

第三、pdfminer3k安裝

法一:

(1)、進(jìn)入網(wǎng)址直接下載并解壓:https://pypi.python.org/pypi/pdfminer3k/

(2)、以管理員身份運(yùn)行命令行窗口,進(jìn)入軟件解壓縮位置,運(yùn)行python setup.py install

法二:

(3)、直接在pycharm中安裝

(4)、讀取pdf過程:首先創(chuàng)建一個分析器pdfparser和文檔對象pdfdocument,并通過兩個方法相互關(guān)聯(lián),然后調(diào)用文檔對象的初始化方法(可以傳參數(shù)),此時資源內(nèi)容被加載到文檔對象中。

創(chuàng)建資源管理器和參數(shù)分析器,然后創(chuàng)建聚合器(整合資源管理器和參數(shù)分析器),通過聚合器創(chuàng)建解釋器(對pdf文檔進(jìn)行編碼,解釋成python能識別的格式)

(5)、讀取pdf文檔:通過文檔對象的get_pages()方法得到pdf每一頁的內(nèi)容,通過解釋器的process_page()方法讀取一頁一頁。

(6)、實(shí)例演示

from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.pdfdevice import PDFDevice
#獲得文檔對象,以二進(jìn)制讀方式打開
fp = open("naacl06-shinyama.pdf", "rb")
#創(chuàng)建一個與文檔關(guān)聯(lián)的分析器
parser = PDFParser(fp)
#創(chuàng)建一個pdf文檔的對象
doc = PDFDocument()
#連接解釋器與文檔對象
parser.set_document(doc)
doc.set_parser(parser)
#初始化文檔,如果文檔有密碼,寫與此。
doc.initialize("")
#創(chuàng)建pdf資源管理器
resource = PDFResourceManager()
#參數(shù)分析器
laparam = LAParams()
#創(chuàng)建聚合器
device = PDFPageAggregator(resource, laparams=laparam)
#創(chuàng)建pdf頁面解釋器
interpreter = PDFPageInterpreter(resource, device)
#使用文檔對象得到頁面的集合
for page in doc.get_pages():
  #使用頁面解釋器讀取
  interpreter.process_page(page)
  #使用聚合器來獲得內(nèi)容
  layout = device.get_result()
  for out in layout:
    if hasattr(out, "get_text"):
      print(out.get_text())

一下用于讀取網(wǎng)站上pdf內(nèi)容

fp = urlopen(http://www.tencent.com/zh-cn/articles/8003251479983154.pdf)

補(bǔ)充內(nèi)容:

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • Python解決Flutter項(xiàng)目簡體字問題的方法

    Python解決Flutter項(xiàng)目簡體字問題的方法

    作為面向大陸外市場的應(yīng)用,我們經(jīng)常編寫代碼的時候往往忘記切換繁體字導(dǎo)致上線后出現(xiàn)簡體字,因?yàn)檠芯肯聵I(yè)內(nèi)相關(guān)插件,看看怎么好解決這個問題,OpenCC 支持語言比較多,所以基于此嘗試了用 Python 去實(shí)現(xiàn),需要的朋友可以參考下
    2024-07-07
  • Python處理字節(jié)串:struct.pack和struct.unpack使用

    Python處理字節(jié)串:struct.pack和struct.unpack使用

    這篇文章主要介紹了Python處理字節(jié)串:struct.pack和struct.unpack使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Python中操作各種多媒體,視頻、音頻到圖片的代碼詳解

    Python中操作各種多媒體,視頻、音頻到圖片的代碼詳解

    這篇文章主要介紹了Python玩轉(zhuǎn)各種多媒體,視頻、音頻到圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-06-06
  • Python讀取含url圖片鏈接的txt文檔方法小結(jié)

    Python讀取含url圖片鏈接的txt文檔方法小結(jié)

    這篇文章主要為大家詳細(xì)介紹了三種Python讀取含url圖片鏈接的txt文檔方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-04-04
  • 如何使用python計算復(fù)雜三角函數(shù)

    如何使用python計算復(fù)雜三角函數(shù)

    當(dāng)涉及到計算復(fù)雜的三角函數(shù)時,Python 提供了強(qiáng)大的數(shù)學(xué)庫和函數(shù)來幫助我們進(jìn)行計算,在本篇博客中,我將介紹如何使用 Python 來計算復(fù)雜的三角函數(shù),需要的朋友可以參考下
    2023-08-08
  • Python數(shù)據(jù)可視化plt.savefig如何將圖片存入固定路徑

    Python數(shù)據(jù)可視化plt.savefig如何將圖片存入固定路徑

    這篇文章主要介紹了Python數(shù)據(jù)可視化plt.savefig如何將圖片存入固定路徑問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • python GUI庫圖形界面開發(fā)之PyQt5拖放控件實(shí)例詳解

    python GUI庫圖形界面開發(fā)之PyQt5拖放控件實(shí)例詳解

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5使用拖放控件實(shí)例詳解,需要的朋友可以參考下
    2020-02-02
  • Python+pyecharts繪制雙動態(tài)曲線教程詳解

    Python+pyecharts繪制雙動態(tài)曲線教程詳解

    pyecharts 是一個用于生成 Echarts 圖表的類庫。Echarts 是百度開源的一個數(shù)據(jù)可視化 JS 庫。用 Echarts 生成的圖可視化效果非常棒。本文將用pyecharts繪制雙動態(tài)曲線,需要的可以參考一下
    2022-06-06
  • Python算法之圖的遍歷

    Python算法之圖的遍歷

    這篇文章主要介紹了Python算法之圖的遍歷,涉及遍歷算法BFS和DFS,以及尋找圖的(強(qiáng))連通分量的算法等相關(guān)內(nèi)容,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • Python中位運(yùn)算的詳細(xì)用法教程

    Python中位運(yùn)算的詳細(xì)用法教程

    在Python中,位運(yùn)算是一種對二進(jìn)制數(shù)進(jìn)行操作的運(yùn)算方式,它們直接對二進(jìn)制位進(jìn)行操作,而不考慮這些位所表示的實(shí)際值,本文將詳細(xì)介紹Python中的位運(yùn)算符,需要的朋友可以參考下
    2024-08-08

最新評論

林周县| 芜湖市| 雷山县| 阿鲁科尔沁旗| 贡嘎县| 沙雅县| 张家川| 远安县| 张家川| 吴川市| 道真| 哈巴河县| 时尚| 莆田市| 千阳县| 大宁县| 南昌市| 绿春县| 板桥市| 开鲁县| 桑植县| 和龙市| 武宣县| 全椒县| 宁阳县| 黎平县| 德州市| 新昌县| 遂昌县| 上虞市| 长白| 石屏县| 合肥市| 曲麻莱县| 凤翔县| 福泉市| 岢岚县| 内乡县| 通州市| 太白县| 抚宁县|