Ich benutze Python und Envoy. Ich muss alle Dateien in einem Verzeichnis löschen. Abgesehen von einigen Dateien ist das Verzeichnis leer. In einem Terminal wäre dies:Verwenden von rm * (Wildcard) in envoy: Keine solche Datei oder Verzeichnis
rm /tmp/my_silly_directory/*
gesunde Menschenverstand sagt, dass in envoy, dies schlägt sich in:
r = envoy.run('rm /tmp/my_silly_directory/*')
jedoch:
r.std_err -> "rm: cannot remove `/tmp/my_silly_directory/*': No such file or directory"
Natürlich gibt es Alternativen zur Verwendung von envoy in diesem Fall, ich frage mich einfach, warum es nicht funktioniert.
Irgendwelche Hinweise?
Das klingt vollkommen richtig und würde wahrscheinlich mit Subprozess arbeiten. Der einzige Aufruf, der in envoy funktioniert, ist 'envoy.run ([[" sh "," -c "," rm/tmp/my_silly_directory/* "]])' aus irgendeinem Grund. So viel zu einem einfacheren "Subprozess";) –
konnte dies übrigens nicht mit Subprozess arbeiten. Derselbe Fehler wie die ursprüngliche Frage. – Nate
@Nate: ['shuthil.rmtree ('/ tmp/my_silly_directory /')'] (http://stackoverflow.com/questions/9106350/how-to-use-wildcards-with-envoy?lq=1#comment15551439_9109127) – jfs