gpt4 book ai didi

python - 从文件号获取文件对象

转载 作者:太空狗 更新时间:2023-10-29 21:40:29 24 4
gpt4 key购买 nike

假设我有一个已打开文件的列表(实际上是文件编号):

import resource
import fcntl

def get_open_fds():
fds = []
soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE)
for fd in range(3, soft):
try:
flags = fcntl.fcntl(fd, fcntl.F_GETFD)
except IOError:
continue
fds.append(fd)
return fds

现在我想获取这些文件的名称。我该怎么做?

编辑

澄清一下,对于那些反对这一点的人:fd 是一个整数。它不是文件描述符。抱歉让您混淆了名称,但代码是不言自明的。

编辑2

我对此很生气,我想是因为我选择了 fd 来表示文件编号。我刚刚检查了 documentation :

All functions in this module take a file descriptor fd as their first argument. This can be an integer file descriptor, such as returned by sys.stdin.fileno(), or a file object, such as sys.stdin itself, which provides a fileno() which returns a genuine file descriptor.

所以fd确实是一个整数。它也可以是一个文件对象,但在一般情况下,fd 没有 .name

最佳答案

根据 this answer :

for fd in get_open_fds():
print fd, os.readlink('/proc/self/fd/%d' % fd)

关于python - 从文件号获取文件对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13622973/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com