Django无法识别已删除/添加的文件

三角洲部队

我有以下功能,它为我提供给定目录列表中的文件列表(完整路径):

from os import walk
from os.path import join

# Returns a list of all the files in the list of directories passed
def get_files(directories = get_template_directories()):
    files = []
    for directory in directories:
        for dir, dirnames, filenames in walk(directory):
            for filename in filenames:
                file_name = join(dir, filename)
                files.append(file_name)
    return files

我正在向 Django 中的模板目录添加一些文件。但是这个函数总是返回相同的文件列表,即使在运行时添加/删除了一些文件。只有在我重新启动服务器时才会反映这些更改。这是因为 os.walk() 执行了一些缓存,还是需要我们在添加/删除一些文件后需要重新启动服务器?

帕维尔·米年科夫

这不是 Django 问题,您的行为是python特定解释器的结果

默认参数可以作为普通值或作为函数调用的结果提供,但后一种技术需要非常大的警告。默认值在启动应用程序时评估一次,从不评估。

我相信这段代码会解决你的问题:

def get_files(directories = None):
    if not directories:
        directories = get_template_directories()
    files = []
    for directory in directories:
        for dir, dirnames, filenames in walk(directory):
            for filename in filenames:
                file_name = join(dir, filename)
                files.append(file_name)
    return files

您可以在 Python 中函数参数的Stackoverflow默认值上找到相同的问题

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Perforce reconcile命令无法识别已打开以进行编辑的文件已删除

来自分类Dev

AWS Amplify无法识别新添加的文件

来自分类Dev

无法删除文件,但写入器已关闭

来自分类Dev

Django 无法识别或看到 JSON 文件

来自分类Dev

无法让IntelliJ识别原始的已编译Java类文件

来自分类Dev

GIMP 2.9.4的配置文件无法识别已安装的库

来自分类Dev

TFS 2012无法识别文件已被删除

来自分类Dev

分区已识别,无法卷

来自分类Dev

git reset HEAD @ {1}是否不删除已添加的文件?

来自分类Dev

git reset HEAD @ {1}是否不删除已添加的文件?

来自分类Dev

Android Studio无法识别我添加的资产文件

来自分类Dev

由于文件已删除,无法进行git合并

来自分类Dev

Git还原无法恢复已删除的文件

来自分类Dev

使用完后无法删除已保存的图像文件

来自分类Dev

无法删除已共享文件夹的“共享”?

来自分类Dev

[NSManagedObjectContext删除:]:无法识别的选择器已发送到实例

来自分类Dev

编译器无法识别函数重载,因为类型已删除。如何克服呢?

来自分类Dev

为什么Django(./manage runserver)提供我已删除的文件?

来自分类Dev

django python文档对象甚至列出了已删除的文件

来自分类Dev

“无法识别的选择器已发送到实例”-添加搜索栏时出错

来自分类Dev

程序已添加到路径,但cmd无法识别/查找(Windows的Ruby版本管理器)

来自分类Dev

恢复已删除的文件

来自分类Dev

已删除的 regedit 文件

来自分类Dev

无法识别文件格式

来自分类Dev

提取的文件无法识别

来自分类Dev

无法识别mpi文件?

来自分类Dev

gperftools无法识别文件

来自分类Dev

无法在Django 1.7中添加文件

来自分类Dev

用git mv移动的文件显示为已删除/已添加

Related 相关文章

  1. 1

    Perforce reconcile命令无法识别已打开以进行编辑的文件已删除

  2. 2

    AWS Amplify无法识别新添加的文件

  3. 3

    无法删除文件,但写入器已关闭

  4. 4

    Django 无法识别或看到 JSON 文件

  5. 5

    无法让IntelliJ识别原始的已编译Java类文件

  6. 6

    GIMP 2.9.4的配置文件无法识别已安装的库

  7. 7

    TFS 2012无法识别文件已被删除

  8. 8

    分区已识别,无法卷

  9. 9

    git reset HEAD @ {1}是否不删除已添加的文件?

  10. 10

    git reset HEAD @ {1}是否不删除已添加的文件?

  11. 11

    Android Studio无法识别我添加的资产文件

  12. 12

    由于文件已删除,无法进行git合并

  13. 13

    Git还原无法恢复已删除的文件

  14. 14

    使用完后无法删除已保存的图像文件

  15. 15

    无法删除已共享文件夹的“共享”?

  16. 16

    [NSManagedObjectContext删除:]:无法识别的选择器已发送到实例

  17. 17

    编译器无法识别函数重载,因为类型已删除。如何克服呢?

  18. 18

    为什么Django(./manage runserver)提供我已删除的文件?

  19. 19

    django python文档对象甚至列出了已删除的文件

  20. 20

    “无法识别的选择器已发送到实例”-添加搜索栏时出错

  21. 21

    程序已添加到路径,但cmd无法识别/查找(Windows的Ruby版本管理器)

  22. 22

    恢复已删除的文件

  23. 23

    已删除的 regedit 文件

  24. 24

    无法识别文件格式

  25. 25

    提取的文件无法识别

  26. 26

    无法识别mpi文件?

  27. 27

    gperftools无法识别文件

  28. 28

    无法在Django 1.7中添加文件

  29. 29

    用git mv移动的文件显示为已删除/已添加

热门标签

归档