91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何利用Python實現讀取包中的數據文件

發布時間:2020-11-09 16:13:31 來源:億速云 閱讀:201 作者:Leah 欄目:開發技術

今天就跟大家聊聊有關如何利用Python實現讀取包中的數據文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。

問題

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

解決方案

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

mypackage/
    __init__.py
    somedata.dat
    spam.py

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

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

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

討論

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

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

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

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

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

看完上述內容,你們對如何利用Python實現讀取包中的數據文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

云林县| 盐津县| 德钦县| 呈贡县| 北京市| 双牌县| 水富县| 小金县| 扎兰屯市| 黄石市| 通海县| 仁布县| 永州市| 靖安县| 习水县| 崇州市| 普陀区| 邢台市| 荃湾区| 屏东县| 繁昌县| 屏边| 邵东县| 巴楚县| 敦化市| 竹山县| 土默特右旗| 扎鲁特旗| 卓尼县| 托克托县| 三门县| 岑巩县| 日土县| 木里| 伊吾县| 昌江| 老河口市| 宜城市| 安远县| 文水县| 汝州市|