我正在创建一个简单的Web应用程序来搜索印度pin代码(包含在单个csv文件中' all_india_pin_code.csv')。此文件在我的django应用的__init__.py
中打开,如下所示:
cf = open('all_india_pin_code.csv')
并且此文件处理程序在app的views.py方法中使用,如下所示:
cf.seek(0)
re = csv.reader(cf)
# more code here
现在,当使用Ctrl + C终止django开发服务器(尚未在生产环境中使用我的应用程序)时,此文件是否会自动关闭?如果没有,做正确的方法是什么?请指教。
答案 0 :(得分:1)
使用Ctrl+C
终止Django开发服务器时,这将终止关联的Python进程,从而关闭所有打开的文件。
要检查此行为,您可以进行以下测试:
启动Python解释器并打开文件:
open('all_india_pin_code.csv')
在shell中,检查文件是否由Python进程打开:
$ lsof | grep all_india_pin_code.csv
这将返回如下结果:
python 26395 user 3r REG 254,2 0 12217876 all_india_pin_code.csv
然后杀死Python解释器。例如:
$ kill -9 26395
再次检查文件是否已打开。此命令将不返回任何结果,因为文件已关闭:
$ lsof | grep all_india_pin_code.csv
答案 1 :(得分:0)
无法评论,因为我的声誉不到 50。 我想用这种方式添加打开文件。
x = open('all_india_pin_code.csv')
并检查您的文件是否仍然打开。
只需运行 x.closed
它会返回 False
如果它仍然打开。
然后运行 x.close()
关闭它。简单