鍍金池/ 問答/Python/ 引用模塊,模塊內(nèi)部函數(shù)open()文件路徑問題

引用模塊,模塊內(nèi)部函數(shù)open()文件路徑問題

如題,在設(shè)計一個doc模塊,里面含有3個文件.

一個是doc/a.py文件,代碼如下

import pickle
data = []
with open('路徑如何寫', 'rb') as foo:
    data = pickle.load(foo)

一個是序列化后的文件,doc/b.pkl
還有一個是doc/__init__.py

如果在當(dāng)前doc模塊的路徑下,實用import a,則路徑寫成'b.pkl‘不會報錯。此時把doc打包成whl,在其他地方安裝,此時用import doc就會報錯,說找不到此b.pkl。
請問我要寫成怎樣,才能在引用模塊里,內(nèi)部代碼導(dǎo)入內(nèi)部的pkl文件。

回答
編輯回答
吢丕

大多數(shù)模塊有一個屬性叫 __file__,值是該模塊的路徑(如果是包的話,該值是 __init__.py 的位置)
如果你引用這個模塊(比如模塊名叫 module)的時候,就可以使用 module.__file__ 來獲?。蝗绻诖四K中,就直接使用 __file__
os.path.dirname(__file__) 就是該模塊所在文件夾。

2018年1月23日 10:46