我同意Cat Plus Plus的回答。但是,如果您知道这只在类Unix操作系统上使用,那么可以使用对shell命令mkdir、chmod和chown的外部调用。确保将额外标志传递给递归影响目录:
>>> import subprocess
>>> subprocess.check_output(['mkdir', '-p', 'first/second/third'])
# Equivalent to running 'mkdir -p first/second/third' in a shell (which creates
# parent directories if they do not yet exist).
>>> subprocess.check_output(['chown', '-R', 'dail:users', 'first'])
# Recursively change owner to 'dail' and group to 'users' for 'first' and all of
# its subdirectories.
>>> subprocess.check_output(['chmod', '-R', 'g+w', 'first'])
# Add group write permissions to 'first' and all of its subdirectories.
我同意Cat Plus Plus的回答。但是,如果您知道这只在类Unix操作系统上使用,那么可以使用对shell命令
mkdir
、chmod
和chown
的外部调用。确保将额外标志传递给递归影响目录:编辑我最初使用
commands
,这是一个错误的选择,因为它被弃用并且容易受到注入攻击。(例如,如果用户输入创建名为first/;rm -rf --no-preserve-root /;
的目录,则可能会删除所有目录)。编辑2如果使用的Python小于2.7,请使用} documentation 。
check_call
,而不是check_output
。有关详细信息,请参见^{对一个古老问题的新回答:
从Python3.2开始,您可以执行以下操作:
多亏了^{} flag ,如果目录存在(取决于您的需要……),这甚至不会抱怨。
从python 3.4(包括pathlib module)开始,您可以执行以下操作:
从python 3.5开始^{} also has an ^{} flag -如果目录存在,则将其设置为
True
不会引发异常:你需要的是^{} 。对于
chmod
或chown
,您必须使用os.walk
并在每个文件/目录上使用它。相关问题 更多 >
编程相关推荐