打开的文件
Process.open_files() - 原文
以命名元组列表返回进程打开的常规文件,包括以下字段:
path
: 绝对文件名。fd
: 文件描述符编号; 在 Windows 上,这始终是 -1。
仅限 Linux:
position
(Linux): 文件(偏移)位置。mode
(Linux): 一个字符串,指示文件是如何打开的,类似于 open 内置模式参数。 可能的值为“r”
、“w”
、“a”
、“r+”
和“a+”
。 以二进制或文本模式(“b”
或“t”
)打开的文件之间没有区别。flags
(Linux): 打开文件时传递给底层 C 调用 os.open 的标志(例如 [os.O_RDONLY]、[os.O_TRUNC] 等)。
>>> import psutil
>>> f = open('file.ext', 'w')
>>> p = psutil.Process()
>>> p.open_files()
[popenfile(path='/home/giampaolo/svn/psutil/file.ext', fd=3, position=0, mode='w', flags=32769)]
⚠️警告: 在 Windows 上,由于底层 Windows API 的一些限制,在检索某些文件句柄时可能会挂起,因此此方法不可靠。 为了解决这个问题,psutil 会生成一个线程来确定文件句柄名称,如果它在 100 毫秒后没有响应,则将其杀死。这意味着 Windows 上的此方法不能保证枚举所有常规文件句柄(请参阅问题 597)。 像 ProcessHacker 这样的工具也有同样的限制。
⚠️警告: 在 BSD 上,由于内核错误,此方法可以返回带有空路径(“”
)的文件,因此它不可靠(请参阅问题 597)。
3.1.0 版本中修改: 不再挂在 Windows 上。
4.1.0 版本中修改: Linux平台中新增 position , mode 和 flags 字段。