【问题标题】:Deleting folders in docker conatiner using python使用python删除docker容器中的文件夹
【发布时间】:2017-05-21 07:24:21
【问题描述】:

我有这个功能,当在 Django Admin 中删除行时,它会删除给定的目录。在 Django Admin 上完成后,该行已成功删除,但该目录仍然存在。

models.py

from django.db import models
from django.conf import settings
import git, os, shutil

class DIR (models.Model):
    username = models.CharField(max_length=39)
    repository = models.CharField(max_length=100)

    def get_dir_name(self):
        return os.path.join(settings.PLAYBOOK_DIR, self.repository)

    def rm_repository(self):
        DIR_NAME = self.get_dir_name()
        shutil.rmtree(os.path.join(DIR_NAME))

    def delete(self):
        self.rm_repository(self):
        super(DIR, self).delete(*args, **kwargs)

但是当我使用 shell 尝试时,目录和内容被删除了

$ docker exec -it <container> python manage.py shell

>>> import os, git, shutil
>>> DIR_NAME = '/opt/app/john'
>>> shutil.rmtree(DIR_NAME)

shell 有什么区别。没有给出错误,只是不确定为什么在 Django Admin 的delete 中这样做不起作用。在 python shell 上测试时它在工作吗?

【问题讨论】:

  • import os os.remove(filename)
  • @rkatkam 不尝试只删除一个文件。试图删除整个目录

标签: python django docker


【解决方案1】:

显然函数 delete() 不适用于批量删除。 我在 Django Admin 中做了什么。

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 2020-02-17
    • 1970-01-01
    • 2019-04-13
    • 1970-01-01
    • 2016-05-01
    • 2017-09-16
    • 1970-01-01
    相关资源
    最近更新 更多