如何使用os.chmod更改多个文件的权限

时间:2016-11-22 14:40:09

标签: python shell

我有一个包含多个文件的目录(一些以.sh结尾的shell,一些文本文件和一些以.py扩展名结尾的python文件)。

我想使用os.chmod命令为所有shell文件(以.sh结尾)添加执行权限。基本上我想这样做:

chmod +x *.sh

我首先尝试检查权限:

>>> s = os.stat('*.ksh')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [Errno 2] No such file or directory: '*.ksh'

但它不起作用。 我怎么能用pythonic方式做到这一点?

1 个答案:

答案 0 :(得分:4)

使用glob module获取文件列表,然后循环遍历它们:

import glob, os, stat

for name in glob.glob('*.sh'):
    print(name, os.stat(name))

您可以根据this question使用os.chmod()来实际添加可执行模式位:

for name in glob.glob('*.sh'):
    st = os.stat(name)
    os.chmod(name, st.st_mode | stat.S_IEXEC)