亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:21日期:2022-07-14 17:06:02

問題

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

解決方案

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

mypackage/ __init__.py somedata.dat spam.py

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

# spam.pyimport pkgutildata = pkgutil.get_data(__package__, ’somedata.dat’)

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

討論

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

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

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

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

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

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

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 四虎永久免费鲁大师 | 91大学生视频 | 色妇色综合久久夜夜 | 日韩精品中文乱码在线观看 | 大胆国模一区二区三区伊人 | xxxxxxx国产精品视频 | 欧美精品播放 | 日本欧美片 | jk足控福利国产在线播放 | 国产精品夜色视频一级区 | 99久久精品免费观看区一 | 国产一级做a爱片久久毛片a | 成人综合在线视频免费观看 | 青青青国产精品国产精品美女 | 亚洲综合网在线观看 | 成人欧美一级毛片免费观看 | 爱干tv| 久久精品国产亚洲麻豆 | 国内自拍视频在线看免费观看 | 欧美一区二区在线观看视频 | 色片在线观看 | 婷婷综合久久狠狠色99h | 欧美成人久久一级c片免费 欧美成人午夜不卡在线视频 | 最新色图 | 99re这里有免费视频精品 | 午夜精品久久久久久 | 国产成人啪精品视频免费网 | 国产精品亚洲专区在线观看 | 午夜视频福利在线 | 精品国产福利第一区二区三区 | 久久久四虎成人永久免费网站 | 色综合网亚洲精品久久久 | 黄色大片播放 | 久久这里只有精品国产 | 国产香蕉在线 | 久久免费视频播放 | 日韩女同性互慰免费视频 | 国产三级日本三级美三级 | 手机国产精品一区二区 | 亚州日韩 | 亚洲精品国产综合99久久一区 |