Importieren Sie Skripte dynamisch in Python

In Python können Skripte mit ** Bindestrich (-) ** im Dateinamen keine Anweisungen importieren. Wenn ich jedoch den Dateinamen wirklich mit Bindestrichen importieren möchte, um einen Test zu schreiben, habe ich herausgefunden, was zu tun ist. Machen Sie sich also eine Notiz.

__import__

** \ _ \ _ import \ _ \ _ ** nimmt den Pfadnamen der Datei als Argument und gibt das Modul der Datei zurück.

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

Jetzt können Sie problemlos auch Dateien mit Bindestrichen importieren.

Verwendung in der Testklasse

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

Importieren Sie Skripte dynamisch in Python
Rufen Sie Methoden in Python dynamisch auf
Importieren / laden Sie Module, die sich in Python geändert haben, dynamisch
Importieren Sie Klassen in JAR-Dateien direkt aus dem Python-Skript
Laden Sie JSON-Typen dynamisch mit Python
Definieren Sie Funktionen (Methoden) in Python dynamisch
Quadtree in Python --2
CURL in Python
[Python3] Definieren Sie globale Variablen in einer Funktion dynamisch
Metaprogrammierung mit Python
Python 3.3 mit Anaconda
Geokodierung in Python
SendKeys in Python
Metaanalyse in Python
Python-Modul importieren
Dynamisches Definieren von Variablen in Python
Unittest in Python
Epoche in Python
Zwietracht in Python
Deutsch in Python
DCI in Python
Importieren Sie ein Python-Skript
Quicksort in Python
nCr in Python
Ich kann Python-Skripte in Eclipse nicht debuggen
N-Gramm in Python
Vorlage zum Schreiben von Batch-Skripten in Python
Programmieren mit Python
Plink in Python
Konstante in Python
FizzBuzz in Python
SQLite in Python
Schritt AIC in Python
So füllen Sie mit Python dynamisch Nullen aus
LINE-Bot [0] in Python
CSV in Python
Reverse Assembler mit Python
Reflexion in Python
Konstante in Python
nCr in Python.
Format in Python
Scons in Python 3
Puyopuyo in Python
Python in Virtualenv
PPAP in Python
Quad-Tree in Python
Modulimport und Ausnahmebehandlung in Python
Reflexion in Python
Chemie mit Python
Hashbar in Python
DirectLiNGAM in Python
LiNGAM in Python
In Python reduzieren
Importfehler: Kein Modul mit dem Namen 'xxxxx' in Python3
Fassen Sie den Python-Import zusammen
In Python flach drücken
Zusammenfassung zum Importieren von Dateien in Python 3
Dynamisches Ersetzen der nächsten Methode in Python