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

Python處理文件的方法(mimetypes和chardet)

 更新時(shí)間:2021年04月14日 10:13:59   作者:八戒無(wú)戒i  
這篇文章主要介紹了Python處理文件的方法(mimetypes和chardet),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

處理文件時(shí)minetype和chardet是很好用的兩個(gè)模塊函數(shù):

###chardet:
主要處理文件文件編碼問(wèn)題

示例.png

假如有這個(gè)一個(gè)配置文件,非ascii或者utf8編碼:

__coding__ = 'UTF-8'
__author__ = 'bingo'

import chardet
import configparser
parse = configparser.ConfigParser()
parse.read("config.ini")
print(parse.sections())

運(yùn)行結(jié)果:

G:\Anaconda\python.exe "C:/Users/bingo/Desktop/The crawler/學(xué)習(xí)/demo.py"
Traceback (most recent call last):
 File "C:/Users/bingo/Desktop/The crawler/學(xué)習(xí)/demo.py", line 29, in <module>
   parse.read("config.ini")
 File "G:\Anaconda\lib\configparser.py", line 696, in read
   self._read(fp, filename)
 File "G:\Anaconda\lib\configparser.py", line 1014, in _read
   for lineno, line in enumerate(fp, start=1):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xff in position 0: illegal >multibyte sequence

但是改成下面, 用chardet先獲取文件編碼格式,就可以完美解決上面報(bào)錯(cuò)問(wèn)題:

import chardet
import configparser

data = open("config.ini", "rb").read()
a = chardet.detect(data)
print(a)

parse = configparser.ConfigParser()
parse.read("config.ini", encoding=a["encoding"])
print(parse.sections())

>>>>>>>>>>>>>>>再運(yùn)行:
G:\Anaconda\python.exe "C:/Users/bingo/Desktop/The crawler/學(xué)習(xí)/demo.py"
{'encoding': 'UTF-16', 'confidence': 1.0, 'language': ''}
['config']

Process finished with exit code 0

###mimetypes:
主要處理文件文件類(lèi)型問(wèn)題
該模塊提供在文件名或URL與與文件擴(kuò)展名關(guān)聯(lián)的MIME類(lèi)型之間進(jìn)行轉(zhuǎn)換的功能,主要有以下兩個(gè)函數(shù):
mimetypes.guess_type(url, strict=True)
返回一個(gè)元組(type, encoding), strict默認(rèn)參數(shù),指定已知MIME類(lèi)型的列表是否僅限于在IANA注冊(cè)的官方類(lèi)型,type為MIME類(lèi)型,encoding可能為None
mimetypes.guess_all_extensions(type, strict=True)
返回一個(gè)列表,根據(jù)傳入的type(MIME類(lèi)型),返回提供所有可能的文件擴(kuò)展名的字符串列表,包括前導(dǎo)點(diǎn)('.'),strict默認(rèn)參數(shù),指定已知MIME類(lèi)型的列表是否僅限于在IANA注冊(cè)的官方類(lèi)型

import mimetypes

# 獲取文件MIME類(lèi)型
type, encoding = mimetypes.guess_type("demo.py")
print(type)
# 根據(jù)MIME類(lèi)型獲取所有可能的文件后綴名
c = mimetypes.guess_all_extensions(type)
print(c)

>>>運(yùn)行結(jié)果如下:
G:\Anaconda\python.exe "C:/Users/bingo/Desktop/The crawler/學(xué)習(xí)/demo.py"
text/plain
['.bat', '.c', '.h', '.ksh', '.pl', '.txt', '.asm', '.cc', '.cod', '.cpp', '.cs', '.csh', '.cshader', >'.csproj', '.cxx', '.def', '.dsh', '.dshader', '.dsp', '.dsw', '.efu', '.filters', '.fx', '.gitattributes', >'.gitignore', '.gitmodules', '.gsh', '.gshader', '.hh', '.hlsl', '.hlsli', '.hpp', '.hsh', '.hshader', >'.hxx', '.i', '.idl', '.inc', '.inl', '.ipp', '.js', '.jsproj', '.jsx', '.jsxbin', '.jsxinc', '.lst', '.mak', >'.map', '.mdp', '.mk', '.odh', '.odl', '.pkgdef', '.pkgundef', '.psh', '.pshader', '.py', '.pyw', >'.rc', '.rc2', '.rct', '.res', '.rgs', '.s', '.sln', '.sol', '.sor', '.srf', '.tlh', '.tli', '.ts', '.tsx', '.tt', >'.user', '.vb', '.vbproj', '.vcp', '.vcw', '.vsh', '.vshader']
.bat

Process finished with exit code 0

到此這篇關(guān)于Python—處理文件(mimetypes和chardet)的文章就介紹到這了,更多相關(guān)Python—處理文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python?List計(jì)算列表平方的9種常見(jiàn)方法

    Python?List計(jì)算列表平方的9種常見(jiàn)方法

    平方操作是指將一個(gè)數(shù)值乘以自身,即計(jì)算數(shù)值的平方,這篇文章主要給大家介紹了關(guān)于Python?List計(jì)算列表平方的9種常見(jiàn)方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-03-03
  • 如何基于Python批量下載音樂(lè)

    如何基于Python批量下載音樂(lè)

    這篇文章主要介紹了如何基于Python批量下載音樂(lè),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-11-11
  • Python和Perl繪制中國(guó)北京跑步地圖的方法

    Python和Perl繪制中國(guó)北京跑步地圖的方法

    當(dāng)你在一個(gè)城市,穿越大街小巷,跑步跑了幾千公里之后,一個(gè)顯而易見(jiàn)的想法是,我到底和之前比快了多少,跑量有何變化,如果能把在這個(gè)城市的所有路線(xiàn)全部畫(huà)出來(lái),會(huì)是怎樣的景象呢,接下來(lái)通過(guò)本文給大家介紹Python和Perl繪制中國(guó)北京跑步地圖的方法,需要的朋友參考下
    2016-03-03
  • Python創(chuàng)建Excel表和讀取Excel表的基本操作

    Python創(chuàng)建Excel表和讀取Excel表的基本操作

    這篇文章主要介紹了Python創(chuàng)建Excel表和讀取Excel表的基本操作,文中通過(guò)代碼示例和圖文結(jié)合的方式講解的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-07-07
  • Python實(shí)現(xiàn)滑動(dòng)平均(Moving Average)的例子

    Python實(shí)現(xiàn)滑動(dòng)平均(Moving Average)的例子

    今天小編就為大家分享一篇Python實(shí)現(xiàn)滑動(dòng)平均(Moving Average)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-08-08
  • python實(shí)現(xiàn)貪吃蛇雙人大戰(zhàn)

    python實(shí)現(xiàn)貪吃蛇雙人大戰(zhàn)

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)貪吃蛇雙人大戰(zhàn),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-04-04
  • Python與xlwings黃金組合處理Excel各種數(shù)據(jù)和自動(dòng)化任務(wù)

    Python與xlwings黃金組合處理Excel各種數(shù)據(jù)和自動(dòng)化任務(wù)

    這篇文章主要為大家介紹了Python與xlwings黃金組合處理Excel各種數(shù)據(jù)和自動(dòng)化任務(wù)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪<BR>
    2023-12-12
  • Python簡(jiǎn)單生成隨機(jī)數(shù)的方法示例

    Python簡(jiǎn)單生成隨機(jī)數(shù)的方法示例

    這篇文章主要介紹了Python簡(jiǎn)單生成隨機(jī)數(shù)的方法,結(jié)合實(shí)例形式分析了Python基于random模塊生成隨機(jī)數(shù)的相關(guān)操作技巧,需要的朋友可以參考下
    2018-03-03
  • python包的導(dǎo)入方式總結(jié)

    python包的導(dǎo)入方式總結(jié)

    在本篇文章里小編給大家整理的是一篇關(guān)于python包的導(dǎo)入方式總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-03-03
  • Python爬蟲(chóng)之超級(jí)鷹驗(yàn)證碼應(yīng)用

    Python爬蟲(chóng)之超級(jí)鷹驗(yàn)證碼應(yīng)用

    眾所周知python是一個(gè)很強(qiáng)大的語(yǔ)言,它擁有眾多的庫(kù),今天我嘗試了使用超級(jí)鷹第三方平臺(tái)進(jìn)行驗(yàn)證碼的開(kāi)發(fā),需要的朋友可以參考下
    2022-08-08

最新評(píng)論