在 Python 中将文件更改为只读模式

新手上路,请多包涵

我正在编写一个数据处理代码,我在其中创建一个新文件,将处理后的数据写入该文件并关闭。但文件必须以只读模式关闭,以免被意外修改。这可以用 Python 完成吗?

原文由 user4369032 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 582
2 个回答

为此,您使用 os.chmod

 import os
from stat import S_IREAD, S_IRGRP, S_IROTH

filename = "path/to/file"
os.chmod(filename, S_IREAD|S_IRGRP|S_IROTH)

请注意,这假定您具有适当的权限,并且您希望不仅仅是所有者能够读取该文件。如果不是这种情况,请删除 S_IROTHS_IRGRP

更新

如果您需要使文件再次可写,只需调用 os.chmod 如下:

 from stat import S_IWUSR # Need to add this import to the ones above

os.chmod(filename, S_IWUSR|S_IREAD) # This makes the file read/write for the owner

只需在打开文件进行写入之前调用它,然后在完成后调用第一个窗体使其再次变为只读。

原文由 aruisdante 发布,翻译遵循 CC BY-SA 3.0 许可协议

此解决方案保留文件的先前权限,就像命令一样 chmod -w FILE

 import os
import stat

filename = "path/to/file"
mode = os.stat(filename).st_mode
ro_mask = 0o777 ^ (stat.S_IWRITE | stat.S_IWGRP | stat.S_IWOTH)
os.chmod(filename, mode & ro_mask)

原文由 Tristan 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题