我正在编写一个数据处理代码,我在其中创建一个新文件,将处理过的数据写入此文件并关闭。但是文件必须以只读模式关闭,因此不会被意外修改。可以用Python完成吗?
答案 0 :(得分:15)
为此,您使用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_IROTH
和S_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
在打开文件进行写作之前,只需调用此方法,然后在完成后再调用第一个表单使其成为只读。
答案 1 :(得分:0)
此解决方案保留文件的先前权限,就像命令chmod -w FILE
import os
import stat
filename = "path/to/file"
mode = os.stat(filename).st_mode
ro_mask = 0777 ^ (stat.S_IWRITE | stat.S_IWGRP | stat.S_IWOTH)
os.chmod(filename, mode & ro_mask)
答案 2 :(得分:-1)
对于Windows操作系统,也许可以尝试以下操作:
import os
filename = open("file_name.txt", "w")
filename.write("my text")
filename.close()
os.system("attrib +r file_name.txt")
答案 3 :(得分:-3)
我想您可以在写入文件后使用os模块来更改文件权限,如下所示:
import os
filename=open("file_name","w")
filename.write("my text")
filename.close()
os.system("chmod 444 file_name")