У меня есть несколько каталогов, и я хочу удалить каталоги старше 7 дней. Я уже реализовал код, но он не работает. Кто-нибудь может увидеть, где я иду не так?
def delete_sandbox():
for directories in os.listdir(os.getcwd()):
if not os.path.isdir(directories) or not os.stat(directories).st_ctime < time.time()-(7*24*3600):
continue
os.chdir(directories)
drop_sandbox()
os.chdir(rootDir)
os.system("sudo rm -rf "+directories)
print 'Folders older than 7 days old dropped and removed'
Спасибо за любую помощь
Песочницы папок удаляются, но не удаляются. Я хочу, чтобы программа вошла в каждую из этих папок, удалила песочницу, вернула chnage в корневой каталог и удалила все старые каталоги. Когда я делаю это, папки все еще существуют.
Также эта функция работала, когда мне удаляли каталоги по строковой дате, сохраненной в имени папки. Но теперь, когда я пытаюсь получить метку времени, она перестала работать.
Я протестировал 'rm -rf'+directories
, и он не удаляет старые папки. Когда я пытаюсь shutil.rmtree
, я получаю сообщение об ошибке:
Traceback (most recent call last):
File "yep.py", line 21, in <module>
delete_sandbox()
File "yep.py", line 18, in delete_sandbox
shutil.rmtree(directories)
File "/home/build/workspace/downloads/Python-2.6.4/Lib/shutil.py", line 208, in rmtree
onerror(os.listdir, path, sys.exc_info())
File "/home/build/workspace/downloads/Python-2.6.4/Lib/shutil.py", line 206, in rmtree
names = os.listdir(path)
OSError: [Errno 2] No such file or directory: 'Debug'
Есть ли другой способ удалить эти папки?
У меня все получилось, я использовал shutil.rmtree
и все, казалось, работало. Спасибо за любую помощь. Измененный код:
def delete_sandbox():
for directories in os.listdir(os.getcwd()):
if not os.path.isdir(directories) or not os.stat(directories).st_ctime < time.time()-(sbox_age):
continue
os.chdir(directories)
drop_sandbox()
os.chdir(rootDir)
shutil.rmtree(directories)
print 'Sandboxes older than 7 days old dropped and removed'
delete_sandbox()