2016-11-22 65 views
1

我有一個包含多個文件(某些以.sh結尾的shell,一些文本文件和一些以.py爲擴展名結尾的python文件)的目錄。如何使用os.chmod更改多個文件的權限

我想使用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的方式做到這一點?

回答

4

使用glob module獲得的文件列表,然後遍歷它們:

import glob, os, stat 

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

你也可以使用os.chmod()this question實際添加可執行模式位:

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

忘記關於glob。謝謝Ben! – Ayush