gpt4 book ai didi

python - 为什么我不能指定文件的打开方式?

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:38 25 4
gpt4 key购买 nike

考虑以下代码:

try:
f = open("myfile2.dat", "rb")
except IOError:
f = open("myfile2.dat", "ab+")
print(f.mode)
f.close()

如果在我运行此代码时 myfile2.dat 不存在,空闲时会使用 rb+ 而不是 ab+ 打开一个新文件,为什么?

最佳答案

您正在以追加 + 写入模式打开一个文件。因为没有要附加到 的文件,所以您会得到一个处于读 + 写模式的文件。

本质上是同一件事。这里没有问题,您仍然可以读取写入文件。

在幕后,文件仍然以附加模式打开,但是 .mode 属性提供了一个更简单的文件 View ;它只会报告您现在可以对文件执行的操作,而不是您打开文件时发生的情况。它仅显示您是否可以读取或写入文件以及文件是否以独占方式打开(x 模式)。

参见 C code for the .mode attribute .

更新:是的,这令人困惑,而且确实是一个错误。 path to fix this discrepancy最近已合并到 Python 中,当新版本的 Python 2.7、3.3 和 3.4 出现时,文件对象的 .mode 属性将更好地反射(reflect)用于打开文件的原始模式字符串。

关于python - 为什么我不能指定文件的打开方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559257/

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