Importer dynamiquement des scripts en Python

En Python, les scripts avec ** tiret (-) ** dans le nom de fichier ne peuvent pas être des instructions importées. Cependant, si je veux vraiment importer le nom du fichier avec des traits d'union pour écrire un test, j'ai trouvé quoi faire, alors prenez note.

__import__

** \ _ \ _ import \ _ \ _ ** prend le chemin du fichier comme argument et retourne le module du fichier.

load-path.py


import sys
path = sys.path
>>> module = __import__("load-path")
>>> type(module)
<type 'module'>
>>> dir(module)
['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'sys', 'path']
>>> dir.path

Vous pouvez désormais facilement importer même des fichiers avec des tirets.

Utilisation en classe de test

py:unit.test.py


import unittest

class Tester(unittest.TestCase):
    module = __import__("load-path")

    def setUp(self):
        for key in dir(self.module):
            setattr(self, key, getattr(self.module,key))

Recommended Posts

Importer dynamiquement des scripts en Python
Appeler dynamiquement des méthodes en Python
Importez / rechargez dynamiquement les modules qui ont changé dans Python
Importez des classes dans des fichiers jar directement à partir d'un script Python
Charger dynamiquement les types json avec python
Définir dynamiquement des fonctions (méthodes) en Python
Quadtree en Python --2
CURL en Python
[Python3] Définir dynamiquement des variables globales dans une fonction
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Importer le module Python
Comment définir dynamiquement des variables en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
Importer un script python
tri rapide en python
nCr en python
Je ne peux pas déboguer les scripts python dans Eclipse
N-Gram en Python
Modèle pour l'écriture de scripts batch en python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
Comment remplir dynamiquement des zéros avec Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Importation de modules et gestion des exceptions en python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Erreur d'importation: aucun module nommé "xxxxxx" dans Python3
Synthétiser l'importation Python
Aplatir en python
Résumé de la façon d'importer des fichiers dans Python 3
Pour remplacer dynamiquement la méthode suivante en python