Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.6无法使用“打开只读文件”;r+;b";模式_Python - Fatal编程技术网

Python 3.6无法使用“打开只读文件”;r+;b";模式

Python 3.6无法使用“打开只读文件”;r+;b";模式,python,Python,在Python 3.6中,当我尝试使用权限为“-r--r--r--r--”的文件“打开('foobar',“r+b”)(在CentOS7中)时,我得到了一个权限失败: “builtins.PermissionError:[Errno 13]权限被拒绝:'full/path/to/foobar'” 如果权限为“-rw-rw-”,则“r+b”可以正常工作 我确实需要以只读方式打开这些文件,我希望它们在目录中具有只读保护(这样它们就不会被其他代码无意中更改),并且我确实需要将它们作为二进制文件读取。这

在Python 3.6中,当我尝试使用权限为“-r--r--r--r--”的文件“打开('foobar',“r+b”)(在CentOS7中)时,我得到了一个权限失败: “builtins.PermissionError:[Errno 13]权限被拒绝:'full/path/to/foobar'”

如果权限为“-rw-rw-”,则“r+b”可以正常工作

我确实需要以只读方式打开这些文件,我希望它们在目录中具有只读保护(这样它们就不会被其他代码无意中更改),并且我确实需要将它们作为二进制文件读取。这是Python 3.6的一个特性/错误吗


我想知道我是否做了一些不正确的事情,或者如果没有,是否有一些解决办法。我真的希望避免现在升级到3.8。

您正在使用
+
模式,该模式正在尝试打开文件进行更新。尝试不使用
+
可以工作

根据帮助:

“+”打开磁盘文件进行更新(读写)


“rb”怎么样?你为什么要用“+”,它是用来更新的?只是一个大脑屁。毫不奇怪,用“rb”而不是“r+b”就可以了。