Фон
Я разрабатываю пакет python с примерно следующей структурой каталогов:
mossutils/
setup.py
mossutils/
__init__.py
init.py
data/
style.css
script.js
...
setup.py
моего пакета объявляет console_scripts
и включает в себя package_data
файлы :
setup(
name='mossutils',
packages=['mossutils'],
package_data={"mossutils": ["data/*"]},
entry_points = {
"console_scripts": ['mu-init = mossutils.init:main']
},
...)
Установка пакета через pip install
работает как положено: все установлено в моем Python Lib\site-packages
, включая каталог data
и все файлы в нем, а также скрипт mu-init
можно выполнить из оболочки (точнее, из командной строки, поскольку я использую Windows).
Цель
Сценарий mu-init
должен выполнять какой-то проект строительные леса в текущем рабочем каталоге, из которого он вызывается. В частности, он должен скопировать все package_data
файлы (data/style.css
, data/script.js
, ...) в текущий каталог.
Решение Попытка
Использование модуля pkgutil
, я могу прочитать содержимое файла, например,
import pkgutil
...
data = pkgutil.get_data(__name__, "data/style.css")
Вопросы
Есть ли способ для моего init.py
сценария на перебирать содержимое каталога data
, без жесткого кодирования имена файлов (в init.py
)?
Могут ли файлы из каталога data
скопировать в текущий рабочий каталог, без , открыть исходный файл, прочитать содержимое и записать его в файл назначения?