Как насчет этого?
function Delete_Directory($Dir)
{
if(is_dir($Dir))
{
$files = glob( $Dir . '*', GLOB_MARK ); //GLOB_MARK adds a slash to directories returned
foreach( $files as $file )
{
Delete_Directory( $file );
}
if(file_exists($Dir))
{
rmdir($Dir);
}
}
elseif(is_file($Dir))
{
unlink( $Dir );
}
}
Refrence: https://paulund.co.uk/php-delete-directory-and-files-in-directory
С Python, более старым, чем 2.7/3.1, это в значительной степени, как Вы делаете это.
Для более новых версий, см. importlib.import_module
для Python 2 и и Python 3 .
, который можно использовать exec
, если Вы хотите также.
Или использование __import__
можно импортировать список модулей путем выполнения этого:
>>> moduleNames = ['sys', 'os', 're', 'unittest']
>>> moduleNames
['sys', 'os', 're', 'unittest']
>>> modules = map(__import__, moduleNames)
Разорванный прямо от Погружение В Python .
Можно использовать exec
:
exec "import myapp.commands.%s" % command
Используйте модуль импорта , или более прямое __import__()
функция.
windowFullscreen
имеет значение true, ложь или isn' t подарок, Ваше Действие все еще будет полным экраном.
– Graeme
8 October 2012 в 08:27
Примечание: импорт удерживается от использования начиная с Python 3.4 в пользу importlib
, Как упомянуто импорт модуль предоставляет Вам загружающий функции:
imp.load_source(name, path)
imp.load_compiled(name, path)
я использовал их прежде для выполнения чего-то подобного.
В моем случае я определил определенный класс с определенными методами, которые требовались. Как только я загрузил модуль, который я проверю, был ли класс в модуле, и затем создайте экземпляр того класса, чего-то вроде этого:
import imp
import os
def load_from_file(filepath):
class_inst = None
expected_class = 'MyClass'
mod_name,file_ext = os.path.splitext(os.path.split(filepath)[-1])
if file_ext.lower() == '.py':
py_mod = imp.load_source(mod_name, filepath)
elif file_ext.lower() == '.pyc':
py_mod = imp.load_compiled(mod_name, filepath)
if hasattr(py_mod, expected_class):
class_inst = getattr(py_mod, expected_class)()
return class_inst
У меня сработало следующее:
import sys, glob
sys.path.append('/home/marc/python/importtest/modus')
fl = glob.glob('modus/*.py')
modulist = []
adapters=[]
for i in range(len(fl)):
fl[i] = fl[i].split('/')[1]
fl[i] = fl[i][0:(len(fl[i])-3)]
modulist.append(getattr(__import__(fl[i]),fl[i]))
adapters.append(modulist[i]())
Он загружает модули из папки 'modus'. У модулей есть один класс с тем же именем, что и имя модуля. Например. файл modus / modu1.py содержит:
class modu1():
def __init__(self):
self.x=1
print self.x
Результатом является список динамически загружаемых классов «адаптеров».