Python String zu Module konvertieren?

2 Antworten

Meinst Du das so in der Art:

>>> import os
>>> mymod="os"
>>> globals()[mymod].getcwd()
'/root'

ggf. kann Dir auch eval helfen

Und wenn Du das Modul anhand eine Stringnamens importieren möchtest, dann hilft Dir importlib ganz gut weiter.

Leider funktioniert diese Methode nicht für mich. Ich nutze Python 2.7 und habe die Funktion so genutzt: result = getattr(globals()["app"].getcwd(), CMD[1])(int(CMD[2].replace("i", ""))) um einfach mal zu schauen, ob er wirklich die Funktion in app aufrufst, jedoch tut er das nicht. Die Module sind bereits alle importiert, ich möchte nur noch auf "app" zugreifen können, ohne es im Code festzulegen. Das soll der User entscheiden dürfen. Wo app steht (im originalen Code) könnte z.B auch os stehen.

0

Das ginge so:

import importlib
mymodule_name = input("import which module? ")
try:
    mymodule = importlib.import_module(mymodule_name)
except ModuleNotFoundError:
    print("module \"{0}\" not found.".format(mymodule_name))
    mymodule = None

Aber damit importiere ich das Module und ich möchte nicht importieren, ich möchte auf die Funktionen im Module zugreifen können.

0
@LunahsBoy

Ah, okay. Dann so (basierend auf deinem Beispiel):

CMD = raw_input(">").split(" ")
app = globals()[CMD[0]]
result = getattr(app, CMD[1])(int(CMD[2].replace("i", "")))
1
@Isendrak

Oh, dass sieht richtig aus! Ich werde es so schnell wie möglich austesten!

0

No module named 'discord'?

Ich wollte mir ein Discord Bot erstellen ich habe alles soweit genacht mit python api und pip zeug im cmd etc. aber wie im Bild erkennbar ist sieht man das er kein discord findet. wie kann ich das beheben.

...zur Frage

Mit String in Python bzw. Basic-256 rechnen?

Ich lege die Funktion sin(x) in f$ ab. x ist variabel um z.B. Nullstellen zu berechnen. Wie muss die Formel für y aussehen? In BASIC (CASIO FX-880P) sah diese so aus:y = VALF(f$) Gibt es in Python eine Alternative zu eval(f$)? Wie sieht der VALF Befehl in Basic-256 aus?

...zur Frage

Habt ihr einen Ansatz für einen Chatbot?

Hallo! Ich bin leidenschaftlicher Programmierer und habe auch schon den einen oder anderen Chatbot fertiggeschrieben, die hatten aber nur bestimmte Aufgaben. Jetzt würde ich gerne einen Smalltalk Chatbot schreiben habe aber keine Ahnung wie ich da anfange... Hättet ihr da Ideen worauf ich schauen sollte? Ich hätte auch gerne eine funktion, die ständig mitlernt und so sachen über den User herausfindet.. Programmiert habe ich bis jetzt in Python ich kann aber auch C/C++ und Java

...zur Frage

Wie importiere ich in python3 eine funktion aus einer anderen .py datei?

Angenommen in meinen Hauptprogramm.py will ich auf die "def output()" in der Datei outputmodul.py zugreifen. Folgendes hab ich schon ausprobiert, was jedoch nicht funktioniert hat: ! Selbstverständlich befinden sich beide Datei im selben Verzeichnis !

Ganz oben in Hauptprogramm.py "import outputmodul" eingegeben und mit "outputmodul.output()" auf die Funktion zugegriffen. Funktioniert nicht. Hier bekomme ich die Fehlermeldung: AttributeError: modul 'outputmodul' has no attribute 'output'

Ganz oben in Hauptprogramm.oy "from outputmodul import output" eingegeben und mit "output()" auf die Funktion zugreifen. Funktioniert auch nicht... Hier bekomme ich folgende Fehlermeldung: ImportError: cannot import name 'output'

Ich könnte "def output()" selbstverständlich auch in "Hauptprogramm.py" definieren, aber das wäre nicht teil meiner Aufgabe^^

Also, wie löse ich das problem?

Danke!

...zur Frage

Gesamtes Verzeichnis im C# kopieren

Hallo, Ich programmiere schon einige zeit in "Microsoft Visual C# 2010 Express". Doch jetzt bin ich auf folgendes Problem gestoßen: Ich möchte einen ganzen Ordner (mit Unterordner, Dateien, ... Einfach alles im Ordner!) kopieren, doch mein Code (unten) erstellt immer ein weiteres Unterverzeichnis...

Also zum Beispiel: "C:/User/Myname/AppData/MyFolder/sourceFolder"

soll nach: "C:/User/Myname/AppData/MyFolder/targetFolder"

KOPIERT werden (Dadurch nützt mir die Anweisung System.IO.Directory.Move nichts)

Doch er kopiert das ganze nach: "C:/User/Myname/AppData/MyFolder/targetFolder/sourceFolder"

Was muss ich bei dem Code ändern??

Hier ist der Code:

   private void CopyDirectoryWithIncludedFiles(string dirCopySource, string dirCopyTarget)
    {
        // alle Unterverzeichnisse des aktuellen Verzeichnisses ermitteln
        string[] subDirectories = Directory.GetDirectories(dirCopySource);

        // Zielpfad erzeugen
        StringBuilder newTargetPath = new StringBuilder();
        {
            newTargetPath.Append(dirCopyTarget);
            // Diese Zeile Erstellt einen Ordner im Zielordner: (Kann leider nicht entfernt werden!)
            newTargetPath.Append(dirCopySource.Substring(dirCopySource.LastIndexOf(@"\")));

        }

        // wenn aktueller Ordner nicht existiert -> ersstellen
        if (!Directory.Exists(newTargetPath.ToString()))
            Directory.CreateDirectory(newTargetPath.ToString());


        // Unterverzeichnise durchlaufen und Funktion mit dazu gehörigen Zielpfad erneut aufrufen (Rekursion)
        foreach (string subDirectory in subDirectories)
        {
            string newDirectoryPath = subDirectory;

            // wenn ''/'' an letzter Stelle dann entfernen
            if (newDirectoryPath.LastIndexOf(@"\") == (newDirectoryPath.Length - 1))
                newDirectoryPath = newDirectoryPath.Substring(0, newDirectoryPath.Length - 1);

            // rekursiever Aufruf
            CopyDirectoryWithIncludedFiles(newDirectoryPath, newTargetPath.ToString());
        }


        // alle enthaltenden Dateien des aktuellen Verzeichnisses ermitteln
        string[] fileNames = Directory.GetFiles(dirCopySource);
        foreach (string fileSource in fileNames)
        {
            // Zielpfad + Dateiname
            StringBuilder fileTarget = new StringBuilder();
            {
                fileTarget.Append(newTargetPath);
                fileTarget.Append(fileSource.Substring(fileSource.LastIndexOf(@"\")));
            }

            // Datei kopieren, wenn schon vorhanden überschreiben
            File.Copy(fileSource, fileTarget.ToString(), true);
        }
    }

Bitte helft mir! Brauche das ganz dringend!

...zur Frage

Eine Social-Media App kostenlos erstellen?

Hallo liebe User,

ich betreibe derzeit eine kleine Community und Sie wünschen sich nichts mehr als eine eigene App dazu. Daher die Frage: Gibt es irgendwie eine möglichkeit eine Social-Media App mit Chat funktion, Login zu erstellen "kostenlos" ?

Ich habe keine Einnahmen bei der Community und möchte vorerst alles kostenlos zur Verfügung stellen.

Wäre sehr dankbar falls man mir helfen könnte.

Mfg.

Kusnoyo

...zur Frage

Was möchtest Du wissen?