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

Python 讀取位于包中的數據文件

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

問題

你的包中包含代碼需要去讀取的數據文件。你需要盡可能地用最便捷的方式來做這件事。

解決方案

假設你的包中的文件組織成如下:

mypackage/
    __init__.py
    somedata.dat
    spam.py

現在假設spam.py文件需要讀取somedata.dat文件中的內容。你可以用以下代碼來完成:

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

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

討論

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

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

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

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

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

以上就是Python 讀取位于包中的數據文件的詳細內容,更多關于Python 讀取數據文件的資料請關注腳本之家其它相關文章!

相關文章

  • Python基于ImageAI實現圖像識別詳解

    Python基于ImageAI實現圖像識別詳解

    ImageAI是一個面向計算機視覺編程的Python庫,支持最先進的機器學習算法。本文將利用ImageAI實現圖像識別功能,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-02-02
  • Python使用Yagmail庫實現自動化郵件營銷

    Python使用Yagmail庫實現自動化郵件營銷

    在數字營銷領域,自動化郵件營銷是一種高效、低成本的方式,能夠幫助企業(yè)與客戶保持溝通,提升品牌忠誠度,而Yagmail是一個簡潔且功能強大的Python庫,可以大大簡化郵件發(fā)送的過程,本文將詳細介紹如何使用Yagmail庫來實現自動化郵件營銷,需要的朋友可以參考下
    2024-12-12
  • Python裝飾器基礎詳解

    Python裝飾器基礎詳解

    裝飾器(decorator)是一種高級Python語法。裝飾器可以對一個函數、方法或者類進行加工。接下來通過本文給大家介紹python裝飾器基礎,對python裝飾器相關知識感興趣的朋友一起學習吧
    2016-03-03
  • Python Opencv任意形狀目標檢測并繪制框圖

    Python Opencv任意形狀目標檢測并繪制框圖

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

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

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

    Python之freegames?零代碼的22個小游戲集合

    這篇文章主要介紹了,Python之freegames?零代碼的22個小游戲集合,文章內容詳細,簡單易懂,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2023-01-01
  • python構造函數init實例方法解析

    python構造函數init實例方法解析

    這篇文章主要介紹了python構造函數init實例方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-01-01
  • Python中Django的ORM高級用法

    Python中Django的ORM高級用法

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

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

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

    python+numpy+matplotalib實現梯度下降法

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

最新評論

枣强县| 祁阳县| 崇阳县| 丹巴县| 利川市| 义马市| 安丘市| 额敏县| 惠州市| 察隅县| 和龙市| 紫金县| 潼关县| 彭阳县| 丹阳市| 来宾市| 色达县| 昭苏县| 祁东县| 高要市| 太湖县| 武平县| 永州市| 本溪市| 五台县| 睢宁县| 石楼县| 清河县| 博乐市| 汉中市| 丹棱县| 嘉鱼县| 永新县| 平湖市| 巴林左旗| 肇源县| 白山市| 孟州市| 濉溪县| 伊川县| 怀来县|