os.listdir显示已删除的文件

时间:2019-07-02 12:46:12

标签: django python-3.x

使用os.listdir()获取文件夹中的文件,并使用os.remove()从其中删除文件,并且在重新启动Django服务器之前,文件仍然列出。有什么方法可以避免必须重新启动服务器才能获得“正确的”文件列表?

具有一个名为pics.py的文件,该文件带有一个file_list,该文件通过views.py传递并呈现在模板中。 从浏览器运行时出现错误,通过Eclipse列表会立即更新。

from os import listdir
from os.path import isfile, join, dirname, abspath

mypath = dirname(dirname(abspath(__file__))) + "\..\media\dump"

file_list = [f for f in listdir(mypath) if isfile(join(mypath, f))]

1 个答案:

答案 0 :(得分:1)

您将需要在视图功能中更新file_list,例如

from os import listdir
from os.path import isfile, join, dirname, abspath

def get_files():
  mypath = dirname(dirname(abspath(__file__))) + "\..\media\dump"
  return [f for f in listdir(mypath) if isfile(join(mypath, f))]

def my_view(request):
  return render(request, "template.html", {"files": get_files()})

(或等效的基于类的视图)。