如何解决如何在python中获取打开文件的Win32句柄?
| 我确定这已记录在某处,但我找不到... 我的代码是从另一个库(我无法修改)获取python对象,并且需要在其上调用一些win32 api函数。 Python从file.fileno()返回的不是操作系统级别的句柄,我猜是它提供了MSVCRT的fileno。>>> ctypes.windll.kernel32.CreateFileA(\'test\',0x80000000L,1,None,3,0)
1948 # <- HANDLE
>>> file(\'test\',\'r\').fileno()
4 # <- not a HANDLE
如何将其转换为真正的win32句柄?
解决方法
我找到了答案:
>>> msvcrt.get_osfhandle(a.fileno())
1956 # valid HANDLE
这实际上记录在http://docs.python.org/library/msvcrt.html上,不知道我是如何错过的。
,PyWin32
库中的ѭ2return将返回您想要的内容。
在测试中,win32file._get_osfhandle(a.fileno())
与msvcrt.get_osfhandle(a.fileno())
返回相同的结果。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。