Hallo,
ich möchte wildcard dateien mit Subprocess löschen.
Der Aufruf sieht so aus:
subprocess.call(["rm",event.path+"/*.r*"])
rm: Entfernen von »/tmp/*.r*« nicht möglich: Datei oder Verzeichnis nicht gefunden
wenn ich manuell rm /tmp/*.r* eingebe funktionierts allerdings
Ein subprocess.call(["rm","-r","/tmp"]) geht auch
Kleines Problem mit Subprocess und rm
@Herr Lehmann: Wenn Du das manuell eingibst meinst Du sicher das Du das in einer Shell eingibst. Die Shell expandiert die Wildcards bevor ``rm`` tatsächlich aufgerufen wird. Wenn Du ``rm`` direkt aufrufst dann wird es mit genau den Argumenten aufgerufen die Du angibst, ohne dass eine Shell das vorher noch interpretiert.
Du müsstest die Wildcards also entweder selber expandieren oder eine Shell dazwischen schalten. Und da dann natürlich mit all den Problemen leben, die das mit sich bringt.
Warum überhaupt ein externer Prozess? Es gibt doch `os.remove()`. Zum Auflösen der Wildcards ist das `glob`-Modul hilfreich.
Pfade sollte man übrigens mit `os.path.join()` zusammen setzen.
Du müsstest die Wildcards also entweder selber expandieren oder eine Shell dazwischen schalten. Und da dann natürlich mit all den Problemen leben, die das mit sich bringt.
Warum überhaupt ein externer Prozess? Es gibt doch `os.remove()`. Zum Auflösen der Wildcards ist das `glob`-Modul hilfreich.
Pfade sollte man übrigens mit `os.path.join()` zusammen setzen.
-
- User
- Beiträge: 81
- Registriert: Samstag 14. August 2010, 22:20
Vielen Dank für die Hinweise. Kein wunder das es nicht funktioniert hat