Skip to main content
 首页 » 编程设计

python之内置 open() 函数中 opener 参数的用途是什么

2025年05月04日1098°冷暖

我正在玩 python 3.5 中的 open 函数。我不明白 opener 参数(最后一个参数)在 open 函数中的用法。根据 python 文档:可以通过将可调用对象作为打开器传递来使用自定义打开器。

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) 

有人可以通过示例向我解释为什么我需要开场白吗?

请您参考如下方法:

参见文档 here .他们给出的例子如下:

import os 
dir_fd = os.open('somedir', os.O_RDONLY) 
def opener(path, flags): 
    return os.open(path, flags, dir_fd=dir_fd) 
 
with open('spamspam.txt', 'w', opener=opener) as f: 
    print('This will be written to somedir/spamspam.txt', file=f) 
 
os.close(dir_fd)  # don't leak a file descriptor 

这个特定示例所做的是创建一个开启器,它始终采用路径并将它们解释为相对于您选择的给定目录 (somedir)。您可以想象使用更复杂的逻辑来根据文件类型查找特定目录,或者根据文件名的前几个字符将大量文件分成一个目录结构,并编写一个特定的函数作为您的打开器来定位它们。所有这些都会将文件定位逻辑封装到一个函数中作为您的开启者。