自动关闭在 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 进程,从而关闭所有打开的文件。
要检查此行为,您可以进行以下测试:
启动一个Python解释器并打开一个文件:
open('all_india_pin_code.csv')
在 shell 中,检查文件是否由您的 Python 进程打开:
$ lsof | grep all_india_pin_code.csv
这将 return 您得到如下结果:
python 26395 user 3r REG 254,2 0 12217876 all_india_pin_code.csv
然后杀死Python解释器。例如:
$ kill -9 26395
再次检查文件是否打开。此命令将return没有结果,因为文件已关闭:
$ lsof | grep all_india_pin_code.csv
无法发表评论,因为我的声誉低于 50。
我想用这种方式添加打开文件。
x = open('all_india_pin_code.csv')
并检查您的文件是否仍然打开。
只要 运行 x.closed
它会 return False
如果它仍然打开。
然后运行x.close()
关闭它。简单
我正在创建一个简单的 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 进程,从而关闭所有打开的文件。
要检查此行为,您可以进行以下测试:
启动一个Python解释器并打开一个文件:
open('all_india_pin_code.csv')
在 shell 中,检查文件是否由您的 Python 进程打开:
$ lsof | grep all_india_pin_code.csv
这将 return 您得到如下结果:
python 26395 user 3r REG 254,2 0 12217876 all_india_pin_code.csv
然后杀死Python解释器。例如:
$ kill -9 26395
再次检查文件是否打开。此命令将return没有结果,因为文件已关闭:
$ lsof | grep all_india_pin_code.csv
无法发表评论,因为我的声誉低于 50。 我想用这种方式添加打开文件。
x = open('all_india_pin_code.csv')
并检查您的文件是否仍然打开。
只要 运行 x.closed
它会 return False
如果它仍然打开。
然后运行x.close()
关闭它。简单