Sto utilizzando Python e Envoy. Ho bisogno di cancellare tutti i file in una directory. A parte alcuni file, la directory è vuota. In un terminale sarebbe:Utilizzo di rm * (carattere jolly) in envoy: Nessun file o directory
rm /tmp/my_silly_directory/*
senso impone che l'inviato, questo si traduce in:
r = envoy.run('rm /tmp/my_silly_directory/*')
Tuttavia:
r.std_err -> "rm: cannot remove `/tmp/my_silly_directory/*': No such file or directory"
Naturalmente esistono alternative all'uso inviato in questo caso, mi sto semplicemente chiedendo perché non funziona.
Eventuali indizi?
Sembra perfettamente corretto e probabilmente funzionerà con il sottoprocesso. Comunque, in envoy, l'unica chiamata che funziona è 'envoy.run ([[" sh "," -c "," rm/tmp/my_silly_directory/* "]])" per qualche ragione. Così tanto per un sottoprocesso più semplice;) –
non è riuscito a far funzionare tutto questo con il sottoprocesso, a proposito. Lo stesso errore della domanda originale. – Nate
@Nate: ['shutil.rmtree ('/ tmp/my_silly_directory /')'] (http://stackoverflow.com/questions/9106350/how-to-use-wildcards-with-envoy?lq=1#comment15551439_9109127) – jfs