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

Python 讀取位于包中的數(shù)據(jù)文件

 更新時(shí)間:2020年08月07日 11:09:28   作者:David Beazley  
這篇文章主要介紹了Python 如何讀取位于包中的數(shù)據(jù)文件,幫助大家更好的理解和學(xué)習(xí)Python,感興趣的朋友可以了解下

問(wèn)題

你的包中包含代碼需要去讀取的數(shù)據(jù)文件。你需要盡可能地用最便捷的方式來(lái)做這件事。

解決方案

假設(shè)你的包中的文件組織成如下:

mypackage/
    __init__.py
    somedata.dat
    spam.py

現(xiàn)在假設(shè)spam.py文件需要讀取somedata.dat文件中的內(nèi)容。你可以用以下代碼來(lái)完成:

# spam.py
import pkgutil
data = pkgutil.get_data(__package__, 'somedata.dat')

由此產(chǎn)生的變量是包含該文件的原始內(nèi)容的字節(jié)字符串。

討論

要讀取數(shù)據(jù)文件,你可能會(huì)傾向于編寫(xiě)使用內(nèi)置的I/ O功能的代碼,如open()。但是這種方法也有一些問(wèn)題。

首先,一個(gè)包對(duì)解釋器的當(dāng)前工作目錄幾乎沒(méi)有控制權(quán)。因此,編程時(shí)任何I/O操作都必須使用絕對(duì)文件名。由于每個(gè)模塊包含有完整路徑的__file__變量,這弄清楚它的路徑不是不可能,但它很凌亂。

第二,包通常安裝作為.zip或.egg文件,這些文件并不像在文件系統(tǒng)上的一個(gè)普通目錄里那樣被保存。因此,你試圖用open()對(duì)一個(gè)包含數(shù)據(jù)文件的歸檔文件進(jìn)行操作,它根本不會(huì)工作。

pkgutil.get_data()函數(shù)是一個(gè)讀取數(shù)據(jù)文件的高級(jí)工具,不用管包是如何安裝以及安裝在哪。它只是工作并將文件內(nèi)容以字節(jié)字符串返回給你

get_data()的第一個(gè)參數(shù)是包含包名的字符串。你可以直接使用包名,也可以使用特殊的變量,比如__package__。第二個(gè)參數(shù)是包內(nèi)文件的相對(duì)名稱。如果有必要,可以使用標(biāo)準(zhǔn)的Unix命名規(guī)范到不同的目錄,只要最后的目錄仍然位于包中。

以上就是Python 讀取位于包中的數(shù)據(jù)文件的詳細(xì)內(nèi)容,更多關(guān)于Python 讀取數(shù)據(jù)文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

    Python基于ImageAI實(shí)現(xiàn)圖像識(shí)別詳解

    ImageAI是一個(gè)面向計(jì)算機(jī)視覺(jué)編程的Python庫(kù),支持最先進(jìn)的機(jī)器學(xué)習(xí)算法。本文將利用ImageAI實(shí)現(xiàn)圖像識(shí)別功能,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-02-02
  • Python使用Yagmail庫(kù)實(shí)現(xiàn)自動(dòng)化郵件營(yíng)銷(xiāo)

    Python使用Yagmail庫(kù)實(shí)現(xiàn)自動(dòng)化郵件營(yíng)銷(xiāo)

    在數(shù)字營(yíng)銷(xiāo)領(lǐng)域,自動(dòng)化郵件營(yíng)銷(xiāo)是一種高效、低成本的方式,能夠幫助企業(yè)與客戶保持溝通,提升品牌忠誠(chéng)度,而Yagmail是一個(gè)簡(jiǎn)潔且功能強(qiáng)大的Python庫(kù),可以大大簡(jiǎn)化郵件發(fā)送的過(guò)程,本文將詳細(xì)介紹如何使用Yagmail庫(kù)來(lái)實(shí)現(xiàn)自動(dòng)化郵件營(yíng)銷(xiāo),需要的朋友可以參考下
    2024-12-12
  • Python裝飾器基礎(chǔ)詳解

    Python裝飾器基礎(chǔ)詳解

    裝飾器(decorator)是一種高級(jí)Python語(yǔ)法。裝飾器可以對(duì)一個(gè)函數(shù)、方法或者類(lèi)進(jìn)行加工。接下來(lái)通過(guò)本文給大家介紹python裝飾器基礎(chǔ),對(duì)python裝飾器相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧
    2016-03-03
  • Python Opencv任意形狀目標(biāo)檢測(cè)并繪制框圖

    Python Opencv任意形狀目標(biāo)檢測(cè)并繪制框圖

    這篇文章主要為大家詳細(xì)介紹了Python Opencv任意形狀目標(biāo)檢測(cè),并繪制框圖,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python自定義裝飾器原理與用法實(shí)例分析

    Python自定義裝飾器原理與用法實(shí)例分析

    這篇文章主要介紹了Python自定義裝飾器原理與用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Python自定義裝飾器,帶參數(shù)的裝飾器等概念、原理、實(shí)現(xiàn)方法及相關(guān)使用技巧,需要的朋友可以參考下
    2018-07-07
  • Python之freegames?零代碼的22個(gè)小游戲集合

    Python之freegames?零代碼的22個(gè)小游戲集合

    這篇文章主要介紹了,Python之freegames?零代碼的22個(gè)小游戲集合,文章內(nèi)容詳細(xì),簡(jiǎn)單易懂,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2023-01-01
  • python構(gòu)造函數(shù)init實(shí)例方法解析

    python構(gòu)造函數(shù)init實(shí)例方法解析

    這篇文章主要介紹了python構(gòu)造函數(shù)init實(shí)例方法解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-01-01
  • Python中Django的ORM高級(jí)用法

    Python中Django的ORM高級(jí)用法

    這篇文章主要介紹了Python中Django的ORM高級(jí)用法,ORM是一種思想,ORM對(duì)象-關(guān)系映射,關(guān)系數(shù)據(jù)庫(kù)是企業(yè)級(jí)應(yīng)用環(huán)境中永久存放數(shù)據(jù)的主流數(shù)據(jù)存儲(chǔ)系統(tǒng),需要的朋友可以參考下
    2023-07-07
  • 基于Keras中Conv1D和Conv2D的區(qū)別說(shuō)明

    基于Keras中Conv1D和Conv2D的區(qū)別說(shuō)明

    這篇文章主要介紹了基于Keras中Conv1D和Conv2D的區(qū)別說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python+numpy+matplotalib實(shí)現(xiàn)梯度下降法

    python+numpy+matplotalib實(shí)現(xiàn)梯度下降法

    這篇文章主要為大家詳細(xì)介紹了python+numpy+matplotalib實(shí)現(xiàn)梯度下降法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評(píng)論

鄂尔多斯市| 铁岭县| 弥勒县| 常德市| 陆川县| 同心县| 龙州县| 大宁县| 百色市| 六安市| 怀来县| 怀来县| 安溪县| 英吉沙县| 池州市| 旺苍县| 南城县| 嘉定区| 盐亭县| 甘南县| 前郭尔| 德兴市| 乌拉特后旗| 阳新县| 枣阳市| 沭阳县| 连城县| 莲花县| 炎陵县| 垦利县| 星座| 淄博市| 布拖县| 油尖旺区| 法库县| 武清区| 忻城县| 青田县| 阿克苏市| 平江县| 盖州市|