2017-03-10 3 views
0

Ich bin neu in Python und möchte diesen Befehl wirklich funktionieren, also habe ich mich auf Google umgesehen, aber ich kann immer noch keine Lösung finden. Ich versuche, ein Skript zu machen, die einen Ordner in dem Ordner in meinem Blender Spiel löscht ist, so kann ich diese Befehle ausprobieren wurde:Wie mache ich den aktuellen Ordner Pfad für meinen Befehl zu arbeiten

import shutil 
from bge import logic 
path = bge.logic.expandPath("//") 

shutil.rmtree.path+("/killme") # remove dir and all contains 

Der Ordner i gelöscht werden soll wird „killme“ genannt, und ich weiß, Sie können einfach tun: shutil.rmtree(Path)

aber ich möchte den Pfad zu dem Ordner starten, in dem das Spiel ist und nicht die vollständige C:/Programme/blabla/blabla/test/killme Pfad.

Glücklich, wenn jemand erklären könnte.

+0

Gelöst, vielen Dank!^-^ – Rednap

Antwort

0

Ich denke, Sie verwenden shuthil.rmtree Befehl auf falsche Weise. Sie können Folgendes verwenden.

shutil.rmtree(path+"/killme")

Blick auf die Referenz https://docs.python.org/3/library/shutil.html#shutil.rmtree
Syntax: shutil.rmtree (path, IGNORE_ERRORS = False, onerror = None)
Unter der Annahme, dass die aktuelle Projektverzeichnis ist 'test'. Dann wird Ihr Code aussehen wie die folgenden Städte:

import shutil 
from bge import logic 
path = os.getcwd() # C:/programs/blabla/blabla/test/ 
shutil.rmtree(path+"/killme") # remove dir and all contains 


HINWEIS: Es wird fehlschlagen, wenn die Dateien nur in dem Ordner gelesen werden.

Hoffe es hilft!

0

Was Sie tun können eingestellt ist ein Basispfad wie

basePath = "/bla_bla/" 

und dann den Pfad anhängen und verwenden Sie so etwas wie:

shutil.rmtree(basePath+yourGamePath) 

Wenn Sie die Python als Standalone-Skript ausgeführt werden, das ist Innerhalb des gewünschten Ordners können Sie Folgendes tun:

#!/usr/bin/env_python 
import os 
cwd = os.getcwd() 
shutil.rmtree(cwd) 

Hope meine Antwort war hilfreich

0

Das beste, was Sie tun können, ist die Verwendung der os Bibliothek.

Dann mit der os.path-Funktion können Sie alle Verzeichnisse und Dateinamen auflisten und können daher die erforderlichen Ordner löschen und ändern, während Sie den Namen der Ordner auf die gleiche Weise extrahieren.

for root, dirnames, files in os.walk("issues"): 
     for name in dirnames: 
      for filename in files: 
       *what you want* 
+0

Danke für all die Unterstützung Jungs, ich habe versucht fast alles, was Sie gesagt haben, aber leider bekomme ich diesen Fehler 'Python-Skript fehlgeschlagen, schauen Sie in der Konsole für jetzt ...' Was ich versucht habe ist: 'importieren shutil von BGE import Logik basePath = "/ test /" shutil.rmtree (basePath + "/ killme") '' und import os CWD = os.getcwd ("/ test /") shutil.rmtree (CWD) 'und import shuttil von bge importieren Logik Pfad = os.getcwd ("/ test /") # C:/Programme/blabla/blabla/test/ shutil.rmtree (Pfad + "/ killme") 'aber der Fehler bleibt bestehen. Die Konsole sagt es nicht. – Rednap

+0

Oh, ich habe gerade meine Konsole überprüft und bei jedem Fehler sagt es "Kein Modul namens" bge "." Also ich denke, das Skript ist nicht das Problem, es ist die (Import bge), die nicht funktioniert. Ich werde das überprüfen!^-^ – Rednap

+0

Ja, dann solltest du das Modul wahrscheinlich zuerst installieren. Lassen Sie uns wissen, ob der Fehler weiterhin besteht. –

Verwandte Themen