中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

如何利用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

新竹市| 东至县| 乐安县| 饶平县| 景泰县| 建平县| 望奎县| 黄平县| 岗巴县| 蒙自县| 平安县| 梓潼县| 福鼎市| 承德市| 冷水江市| 东兰县| 竹溪县| 延寿县| 岫岩| 宁化县| 延长县| 贵溪市| 略阳县| 嫩江县| 南平市| 新野县| 石屏县| 玉田县| 彩票| 富平县| 福海县| 温州市| 建始县| 德保县| 博爱县| 泸溪县| 义乌市| 多伦县| 白银市| 通江县| 西丰县|