自动关闭在 django 中打开的文件 __init__.py

Auto close a file opened in django __init__.py

我正在创建一个简单的 Web 应用程序来搜索印度密码(包含在单个 csv 文件中 'all_india_pin_code.csv')。此文件在我的 Django 应用程序的 __init__.py 中打开,如下所示:

cf = open('all_india_pin_code.csv')

并且此文件处理程序在应用程序的 views.py 方法中使用如下:

cf.seek(0)
re = csv.reader(cf)
# more code here

现在,当使用 Ctrl+C 终止 django 开发服务器(尚未在生产环境中使用我的应用程序)时,该文件会自动关闭吗?如果不是,正确的方法是什么?请指教

当您使用 Ctrl+C 终止 Django 开发服务器时,这将终止关联的 Python 进程,从而关闭所有打开的文件。

要检查此行为,您可以进行以下测试:

  1. 启动一个Python解释器并打开一个文件:

    open('all_india_pin_code.csv')

  2. 在 shell 中,检查文件是否由您的 Python 进程打开:

    $ lsof | grep all_india_pin_code.csv

    这将 return 您得到如下结果:

    python 26395 user 3r REG 254,2 0 12217876 all_india_pin_code.csv

  3. 然后杀死Python解释器。例如:

    $ kill -9 26395

  4. 再次检查文件是否打开。此命令将return没有结果,因为文件已关闭:

    $ lsof | grep all_india_pin_code.csv

无法发表评论,因为我的声誉低于 50。 我想用这种方式添加打开文件。

x = open('all_india_pin_code.csv')

并检查您的文件是否仍然打开。 只要 运行 x.closed 它会 return False 如果它仍然打开。 然后运行x.close()关闭它。简单