gpt4 book ai didi

python - 为什么 os.fdopen() 忽略 "mode"参数?

转载 作者:行者123 更新时间:2023-12-05 06:06:21 25 4
gpt4 key购买 nike

这段代码在 Python 2.7.16 和 3.8.3 上运行时会产生不同的结果:

import tempfile
import os

fd, lockfile = tempfile.mkstemp()
flags = os.O_RDWR | os.O_CREAT
mode = 'w+b'

fd = os.open(lockfile, flags)
fileobj = os.fdopen(fd, mode)

print(fileobj.mode)

os.remove(lockfile)

在 2.7 中它按预期打印 w+b 但在 3.8 中它打印 rb+。为什么它不以这种方式遵守模式参数?

我已经尝试手动创建一个文件来减少 tempfile 差异,但仍然得到相同的结果。

我在文档中看不到任何明显的内容:

在 MacOS 10.14.6 上运行

最佳答案

来自内置open函数的文档:

mode is an optional string that specifies the mode in which the file is opened.

当使用文件描述符而不是文件路径调用 open 时(或者当您使用需要文件描述符的别名 fdopen 时),不会打开任何文件。创建并返回一个包装文件描述符的 Python 类文件对象。您无法更改打开文件的模式,因此 mode 参数将被忽略。

关于python - 为什么 os.fdopen() 忽略 "mode"参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65753134/

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