发布于 2018-08-14 19:28:56
是的,这是通过将论据传递给标准os
模块中的各种函数来支持的。参见例如os.open()
打开文件路径并设置各种标志..。 此函数可以使用dir_fd参数支持相对于目录描述符的路径。。
如果您想使用高级文件对象(如内置open()
函数返回的文件对象),则该函数的文档提供示例代码,演示如何使用opener
参数对该函数执行此操作。请注意,open()
和os.open()
是完全不同的函数,不应混淆。或者,您可以用os.open()
打开文件,然后将文件描述符号传递给os.fdopen()
或open()
。
还应该注意的是,这目前只适用于Unix;检查dir_fd
支持的可移植和未来的验证方法是编写如下代码:
if os.open in os.supports_dir_fd:
# Use dir_fd.
else:
# Don't.
另一方面,我并不完全确定Windows是否允许首先打开一个目录。您当然不能用_wopen()
来完成它,如果“给定的路径是一个目录”,就会被记录为失败。为了安全起见,我建议只在检查dir_fd
支持之后尝试打开目录。
https://stackoverflow.com/questions/51852298
复制相似问题