我有一个包含多个文件的目录(一些以.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方式做到这一点?
答案 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)