You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中设置文件权限防止文件删除或设为只读?

防止文件被删除/设置为只读的Python实现方法

完全阻止文件被删除在常规系统权限下很难实现(管理员/root用户总能绕过限制),但设置为只读可以有效防止误修改和普通用户的删除操作。以下是基于os模块的跨平台实现方案:

Windows系统

在Windows上,你可以通过修改文件权限位或设置系统只读属性两种方式实现:

方式1:使用os和stat模块修改权限位

import os
import stat

file_path = "target_file.txt"

# 获取当前文件权限
current_mode = os.stat(file_path).st_mode
# 移除所有用户的写入权限
new_mode = current_mode & ~(stat.S_IWUSR | stat.S_IWGRP | stat.S_IWOTH)
os.chmod(file_path, new_mode)

方式2:设置系统只读属性(更直观)

如果需要让文件在资源管理器中显示为"只读",可以借助pywin32库(需先安装:pip install pywin32):

import win32api
import win32con

file_path = "target_file.txt"

# 获取当前文件属性
attrs = win32api.GetFileAttributes(file_path)
# 添加只读属性
win32api.SetFileAttributes(file_path, attrs | win32con.FILE_ATTRIBUTE_READONLY)

类Unix系统(Linux/macOS)

类Unix系统的权限管理更直接,通过os.chmod设置文件为0o444(所有用户只读)即可:

import os

file_path = "target_file.txt"

# 设置所有者、组、其他用户均只读
os.chmod(file_path, 0o444)

# 若后续需要恢复可读写权限,执行:
# os.chmod(file_path, 0o644)

关键说明

  1. 权限限制的局限性:即便设置了只读,系统管理员/root用户仍可修改权限后删除文件,无法做到绝对不可删除。
  2. 执行权限要求:修改文件权限需要你拥有该文件的所有权,或具备管理员/root级别权限。
  3. 误操作恢复:如果需要取消只读,Windows可以移除FILE_ATTRIBUTE_READONLY属性,类Unix系统重新设置可读写权限(如0o644)即可。

内容的提问来源于stack exchange,提问作者JosephMoraila

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 23:22:05