Python 3.6无法使用“打开只读文件”;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的一个特性/错误吗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”可以正常工作 我确实需要以只读方式打开这些文件,我希望它们在目录中具有只读保护(这样它们就不会被其他代码无意中更改),并且我确实需要将它们作为二进制文件读取。这
我想知道我是否做了一些不正确的事情,或者如果没有,是否有一些解决办法。我真的希望避免现在升级到3.8。您正在使用
+
模式,该模式正在尝试打开文件进行更新。尝试不使用+
可以工作
根据帮助:
“+”打开磁盘文件进行更新(读写)
“rb”怎么样?你为什么要用“+”,它是用来更新的?只是一个大脑屁。毫不奇怪,用“rb”而不是“r+b”就可以了。