0
我正在編寫一個python包管理器,並且我正在根據當前目錄中的程序/包生成__all__
對象,但我也想忽略任何非包。 即,如果我有以下目錄結構:獲取當前目錄中的所有文件和目錄python
project
|------__init__.py
|------prog1.py
|------package
|------__init__.py
|------prog2.py
|------resources
|------ping.png
我想__all__
變量如下所示:
__all__ = ['prog1', 'package']
我曾嘗試過各種東西,但在所有誠實,我不知道我在做什麼。
這是我最後一次嘗試:
import os
from os import path
def config_all(directory):
__all__ = []
directory = path.abspath(directory)
for root, dirs, files in os.walk(directory, topdown=False):
for d in dirs:
os.chdir("/czar/".join(path.abspath(d).rsplit("/", 1)))
v = list(os.walk('.'))[0][2]
if "__init__.py" in v:
__all__.append(d)
for i in v:
while i in __all__:
__all__.remove(i)
os.chdir('..')
for f in files:
__all__.append(path.join(root, f).rsplit("/", 1)[1].rsplit(".", 1)[0])
return __all__
__all__ = config_all('czar/')
print(__all__)
請出示你已經嘗試過了,你已經閱讀過哪些文檔。 –
@BryanOakley我沒有展示我已經嘗試過的東西,因爲它沒有像我想要的那樣工作,我不希望這篇文章的回覆是切題。 – mcchucklezz
不要這樣做:不要使'__all__'動態。只需*顯式*指定要從模塊中導出哪些函數和變量。 – Evert