Próbuję zbudować funkcję, która usunie wszystkie pliki zaczynające się od "przedrostek" z katalogu głównego mojego projektu. Oto, co mam do tej poryWywołanie rm z podprocesu przy użyciu symboli wieloznacznych nie powoduje usunięcia plików
def cleanup(prepend):
prepend = str(prepend)
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
end = "%s*" % prepend
cmd = 'rm'
args = "%s/%s" % (PROJECT_ROOT, end)
print "full cmd = %s %s" %(cmd, args)
try:
p = Popen([cmd, args], stdin=PIPE, stdout=PIPE, stderr=PIPE, close_fds=True).communicate()[0]
print "p", p
except Exception as e:
print str(e)
Nie mam szczęścia - to chyba nic nie robi. Czy masz jakieś pomysły, co mogę robić źle? Dziękuję Ci!
myślę Odpowiedź Levona jest lepszym podejściem, mówiąc, jeśli chcesz zobaczyć, co to robi, uruchom to pod 'strace (1)' opcją linii '-f' i możesz zobaczyć dokładny system' execve (2) ' Zadzwoń, że jest wykonywany – sarnold