【问题标题】:Python 3.6 fails to open read-only file using "r+b" modePython 3.6 无法使用“r+b”模式打开只读文件
【发布时间】:2019-12-06 01:31:55
【问题描述】:

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

用“r”打开就好了,如果权限是“-rw-rw-rw-”,“r+b”就可以正常工作。

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

我想知道我是否做错了什么,或者如果没有,是否有一些解决方法。我真的很想避免现在升级到 3.8。

【问题讨论】:

  • “rb”怎么样?为什么要使用“+”来表示更新?
  • 只是个脑残。毫不奇怪,用“rb”代替“r+b”一切都很好。

标签: python


【解决方案1】:

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

根据帮助:

'+'打开一个磁盘文件进行更新(读写)

【讨论】:

    猜你喜欢
    • 2018-07-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-05
    • 2020-07-21
    • 2012-09-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多