在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

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

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

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

一個(gè)是doc/a.py文件,代碼如下

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

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

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

回答
編輯回答
吢丕

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

2018年1月23日 10:46