1243 Stimmen

Wie kann ich andere Python-Dateien importieren?

Wie kann ich andere Dateien in Python importieren?

  1. Wie genau kann ich eine bestimmte Python-Datei importieren, z. B. import file.py ?
  2. Wie kann ich einen Ordner anstelle einer bestimmten Datei importieren?
  3. Ich möchte eine Python-Datei dynamisch zur Laufzeit laden, basierend auf dem Benutzer Eingabe.
  4. Ich möchte wissen, wie ich nur einen bestimmten Teil aus der Datei laden kann.

Zum Beispiel, in main.py Ich habe:

from extra import *

Damit habe ich zwar alle Definitionen in extra.py , obwohl ich vielleicht nur eine einzige Definition brauche:

def gap():
    print
    print

Was füge ich dem import Anweisung, um einfach die gap de extra.py ?

1voto

Lucas Soares Punkte 19

Sie können auch dies tun: from filename import something

Beispiel: from client import Client Beachten Sie, dass Sie die .py .pyw .pyui Erweiterung.

0voto

Benj Punkte 638

Es gibt viele Möglichkeiten, wie oben aufgeführt, aber ich finde, dass ich nur den Inhalt einer Datei importieren wollen, und nicht Zeilen über Zeilen schreiben und importieren müssen andere Module. Also habe ich einen Weg gefunden, den Inhalt einer Datei zu erhalten, sogar mit der Punktsyntax ( file.property ), anstatt die importierte Datei mit der eigenen zusammenzuführen.
Zunächst einmal, hier ist meine Datei, die ich importieren werde, data.py

    testString= "A string literal to import and test with"

Sie könnten die .txt stattdessen die Erweiterung.
Sur mainfile.py beginnen Sie mit dem Öffnen und der Entnahme des Inhalts.

    #!usr/bin/env python3
    Data=open('data.txt','r+').read()

Jetzt haben Sie den Inhalt als Zeichenkette, aber der Versuch, auf data.testString wird einen Fehler verursachen, da data ist eine Instanz der str Klasse, und selbst wenn sie eine Eigenschaft hat testString wird es nicht das tun, was Sie erwartet haben.
Als nächstes erstellen Sie eine Klasse. Zum Beispiel (Wortspiel beabsichtigt), ImportedFile

    class ImportedFile:

Und fügen Sie dies ein (mit der entsprechenden Einrückung):

    exec(data)

Und schließlich, neu zuweisen data etwa so:

    data=ImportedFile()

Und das war's! Greifen Sie einfach wie bei jedem anderen Modul zu und geben Sie print(data.testString) wird auf der Konsole ausgegeben A string literal to import and test with .
Wenn Sie jedoch das Äquivalent von from mod import * lassen Sie einfach die Klasse und die Instanzzuweisung weg und deaktivieren Sie die exec .

Ich hoffe, das hilft:)
-Benji

0voto

KSp Punkte 1001
from y import * 
  • Angenommen, Sie haben eine Datei x und y.
  • Sie möchten die Datei y nach x importieren.

gehen Sie dann zu Ihrer x-Datei und geben Sie den obigen Befehl ein. Um dies zu testen, fügen Sie einfach eine Druckfunktion in Ihre y-Datei ein. Wenn der Import erfolgreich war, sollte die x-Datei gedruckt werden.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X