使用os.makedirs()时子文件夹的权限

时间:2015-03-13 12:47:05

标签: python unix

我正在尝试在UNIX上使用Python创建一个目录。

这是我的代码:

import os, sys

if len(sys.argv) > 2:
    print "USAGE : createDir <codeset>"
    sys.exit()

rootName= sys.argv[1]

# setting $HOME and $DATA path
home_path = "/opt/app/" + rootName+ "/"
data_path = "/data/app/" + rootName + "/"

# creating rootName directory
os.makedirs(home_path , 0755)
os.makedirs(data_path , 0755)

# create data and log folder in data_path
os.makedirs(data_path + "data")
os.makedirs(data_path + "log")

# create J2SEDomain and scripts folders
os.makedirs(home_path + "J2SEDomain")
os.makedirs(home_path + "scripts")

print "All folders created successfully."

现在我想知道我为rootName文件夹设置的权限是否适用于其中的所有子文件夹,或仅适用于rootName文件夹。

另外请告诉我如何有效地编写上述代码,因为我是Python新手。

编辑:我没有明确检查权限,但是询问权限设置为0755的文件夹中子文件夹的默认权限

1 个答案:

答案 0 :(得分:1)

我认为它可以缩短一点。您不需要明确的0755我不会想到,因为这是典型的默认设置。所以我认为可以简单地消除这些界限:

# creating rootName directory
os.makedirs(home_path , 0755)
os.makedirs(data_path , 0755)

home_pathdata_path将通过您对os.makedirs的后续调用创建。

但是,如果您确实需要偏离home_pathdata_path顶级的默认权限,则需要保留这些调用并相应地设置权限。