首页 > 解决方案 > 理解 Python 中的 HandleCount

问题描述

我试图理解python中的句柄和句柄计数。

我用 python 打开了一个文件,并期望句柄数增加,因为文件仍然打开。但句柄数保持不变。

C:\Users\achakravarthy>py
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.getppid()
12688
PS C:\Users\achakravarthy> get-process -id 12688 | select-object Handle, HandleCount                                    
Handle HandleCount
------ -----------
  5116         142

我打开一个文件并写了一段文字。该文件仍处于打开状态。我期望句柄数增加到143,因为该进程仍然打开文件。

>>> f = open( 'test.txt', 'w+' )
>>> f.write('hello world')
11

但 HandleCount 保持不变 (142)。然而,句柄值是随机变化的。

PS C:\Users\achakravarthy> get-process -id 12688 | select-object Handle, HandleCount                                    
Handle HandleCount
------ -----------
  1528         142

有人可以帮助理解/教育资源,了解为什么打开文件时句柄计数不会增加以及为什么句柄值不断随机变化。

标签: pythonpython-3.xwindowsprocess

解决方案


推荐阅读