Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: SHELL Befehl mit Leerzeichen im Pfad

SHELL Befehl mit Leerzeichen im Pfad
27.09.2018 13:54:13
JensF
Hallo Leute,
ich rufe mit SHELL ein Python Script auf. Sobald in der Pfadangabe ein Leerzeichen vorkommt funktioniert es nicht mehr.
Sub GetDataFromPython()
Dim pyPrgm As String, pyScript As String
pyPrgm = "C:\Users\User\AppData\Local\Continuum\anaconda3\python.exe"
pyScript = "C:\Users\User\Documents\PythonData\python.py"
Call Shell(pyPrgm & " " & pyScript)
End Sub

...das funktioniert.
Bei
Sub GetDataFromPython()
pyScript = "C:\Users\User\Documents\Python Data\python.py"
End Sub
funktioniert es nicht mehr wg des Leerzeichens in Python Data.
Was kann man hier tun?
Viele Grüße
Jens
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: SHELL Befehl mit Leerzeichen im Pfad
27.09.2018 13:58:42
Torsten
Probier mal:
pyScript = "'C:\Users\User\Documents\Python Data\python.py'"

funktioniert nicht
27.09.2018 14:18:11
JensF
Hallo,
das bringt leider nichts. Damit funktioniert es auch ohne Leerzeichen nicht mehr.
Grüße
Jens
AW: SHELL Befehl mit Leerzeichen im Pfad
27.09.2018 15:18:06
Karl-heinz
Hallo Jens,
für Shell sind wie bei DOS Leerzeichen enthaltende Angaben in " (ASCII-Zeichen 34) zu setzen.
pyScript = CHR$(34) & "C:\Users\User\Documents\Python Data\python.py" & CHR$(34)
Viele Grüße
Karl-Heinz
Anzeige
AW: SHELL Befehl mit Leerzeichen im Pfad
28.09.2018 10:17:33
JensF
Vielen Dank,
das hat geklappt!
Viele Grüße
Jens
;
Anzeige
Anzeige

Infobox / Tutorial

SHELL Befehl mit Leerzeichen im Pfad


Schritt-für-Schritt-Anleitung

Um ein Python-Skript über den SHELL Befehl in Excel auszuführen, ohne dass Leerzeichen im Pfad Probleme verursachen, folge diesen Schritten:

  1. Öffne Excel und drücke Alt + F11, um den VBA-Editor zu starten.

  2. Füge ein neues Modul hinzu: Rechtsklick auf "VBAProject" > "Einfügen" > "Modul".

  3. Füge den folgenden Code ein:

    Sub GetDataFromPython()
       Dim pyPrgm As String, pyScript As String
       pyPrgm = "C:\Users\User\AppData\Local\Continuum\anaconda3\python.exe"
       pyScript = CHR$(34) & "C:\Users\User\Documents\Python Data\python.py" & CHR$(34)
       Call Shell(pyPrgm & " " & pyScript)
    End Sub
  4. Passe den Pfad an, um sicherzustellen, dass er zu deinem Python-Interpreter und Skript passt.

  5. Führe das Makro aus, um sicherzustellen, dass das Skript korrekt gestartet wird.


Häufige Fehler und Lösungen

  • Leerzeichen im Pfad: Wenn du Leerzeichen im Pfad hast, stelle sicher, dass der gesamte Pfad in Anführungszeichen gesetzt ist. Verwende CHR$(34), um die ASCII-Anführungszeichen zu setzen.

  • Python nicht gefunden: Überprüfe, ob der angegebene Pfad zu deinem Python-Interpreter korrekt ist.

  • Skript läuft nicht: Stelle sicher, dass das Python-Skript keine Fehler enthält und dass der Pfad korrekt angegeben ist.


Alternative Methoden

Eine alternative Möglichkeit, mit Leerzeichen in Pfaden umzugehen, besteht darin, den Pfad mit Escape-Zeichen zu versehen. Dies könnte jedoch in Excel VBA komplizierter sein und wird nicht empfohlen, da das oben genannte Verfahren mit CHR$(34) einfacher ist.


Praktische Beispiele

Hier ist ein Beispiel, wie du den SHELL Befehl nutzen kannst:

Sub RunPythonScript()
    Dim pythonPath As String
    Dim scriptPath As String
    pythonPath = "C:\Users\User\AppData\Local\Continuum\anaconda3\python.exe"
    scriptPath = CHR$(34) & "C:\Users\User\Documents\Python Data\script.py" & CHR$(34)
    Shell pythonPath & " " & scriptPath, vbNormalFocus
End Sub

In diesem Beispiel wird das Python-Skript script.py im Ordner mit Leerzeichen ausgeführt.


Tipps für Profis

  • Python in Excel einbinden: Überlege, das Python-Skript direkt in Excel zu integrieren, um die Effizienz zu steigern. Tools wie xlwings können helfen, Python-Skripte direkt aus Excel aufzurufen.

  • Shell Programmierung: Wenn du regelmäßig mit Shell-Befehlen arbeitest, erwäge, eine benutzerdefinierte Funktion zu erstellen, die dir hilft, mehrere Skripte effizient auszuführen.


FAQ: Häufige Fragen

1. Was mache ich, wenn mein Python-Skript nicht ausgeführt wird?
Überprüfe den Pfad zu deinem Python-Interpreter und dem Skript. Achte darauf, dass Leerzeichen korrekt behandelt werden.

2. Gibt es eine Möglichkeit, die Ausgabe des Python-Skripts in Excel anzuzeigen?
Ja, du kannst die Ausgabe des Skripts in eine Textdatei umleiten und dann den Inhalt dieser Datei in Excel importieren.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige