我想在可执行的python脚本中创建一个文件.
import os
import stat
os.chmod('somefile', stat.S_IEXEC)
Run Code Online (Sandbox Code Playgroud)
它似乎os.chmod没有像unix chmod那样"添加"权限.注释掉最后一行后,该文件具有filemode -rw-r--r--,未注释掉,文件模式为---x------.如何u+x在保持其余模式完整的同时添加标志?
最近我使用的是Python模块os,当我试图更改文件的权限时,我没有得到预期的结果.例如,我打算将权限更改为rw-rw-r--,
os.chmod("/tmp/test_file", 664)
Run Code Online (Sandbox Code Playgroud)
所有权许可实际上是-w - wx ---(230)
--w--wx--- 1 ag ag 0 Mar 25 05:45 test_file
Run Code Online (Sandbox Code Playgroud)
但是,如果我在代码中将664更改为0664,结果就是我需要的,例如
os.chmod("/tmp/test_file", 0664)
Run Code Online (Sandbox Code Playgroud)
结果是:
-rw-rw-r-- 1 ag ag 0 Mar 25 05:55 test_file
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助解释为什么领先的0对于获得正确的结果如此重要?
我正在尝试创建一个只有用户可读和可写(0600)的文件.
这是通过以下方式使用的唯一方法os.open()吗?
import os
fd = os.open('/path/to/file', os.O_WRONLY, 0o600)
myFileObject = os.fdopen(fd)
myFileObject.write(...)
myFileObject.close()
Run Code Online (Sandbox Code Playgroud)
理想情况下,我希望能够使用with关键字,以便我可以自动关闭对象.有没有更好的方法来做我上面做的事情?
我意识到open()我一直在使用的函数是一个别名,io.open()并且*从中导入os会掩盖这一点.
通过io模块和os模块打开文件有什么区别?