我的python脚本创建一个文件,如果它不存在,则读取和写入该文件。该脚本可以由root(自动)或用户(刷新请求)运行。我需要使用写权限创建文件,这样在两种情况下都可以重写文件。
import os
f = os.open('file', os.O_CREAT, 0777)
os.close(f)
但是......
$ ls -l
-rwxr-xr-x 1 pi pi 0 Feb 22 13:51 file
然而,这个脚本有效,我不明白其中的区别:
import os
f = os.open('file', os.O_CREAT)
os.fchmod(f, 0777)
os.close(f)
......然后:
$ ls -l
-rwxrwxrwx 1 pi pi 0 Feb 22 13:54 file
答案 0 :(得分:4)
您没有设置umask
,您正在设置umask
屏蔽的文件模式位。 Per the documentation:
打开文件文件并根据标志和设置各种标志 可能是模式的模式。默认模式为0777(八进制), 并且首先屏蔽当前的umask值。 ...
您的umask
值似乎为0022
,从而屏蔽了群组和其他用户写入权限。
此
os.fchmod(f, 0777)
尽管0777
值为umask
,但仍明确将文件权限设置为repositories {
jcenter()
}
dependencies {
compile 'com.journeyapps:zxing-android-embedded:3.2.0@aar'
compile 'com.google.zxing:core:3.2.1'
compile 'com.android.support:appcompat-v7:23.1.0' // Version 23+ is required
}
android {
buildToolsVersion '23.0.2' // Older versions may give compile errors
}
。