需求:
一個文件夾中有個文件,要求對特定的文件加入可執行權限
某文件系統目錄下有一系列文件:
quicksort
graph.py
heap.java
install.sh
stack.cpp
.....
編寫程序對所有的.sh文件和.py文件加上用戶可執行權限
解決方法:
使用字符串的str.startswith()和str.endswith()方法
注意,多個匹配時參數使用元組
一:首先創建幾個文件,如圖(並沒有可執行權限)
二:具體代碼實現(還可以通過列表表達式)
實現效果:
講解:
os.listdir(".") :將所在的文件夾下所有文件名以列表形式返回
x.endswith(".sh") 判斷x這個字符串是否以.sh文件結尾
x.endwith((".sh",",py")) 判斷這個字符串是否以.sh或者.py文件結尾;注意,必須是元組類型
執行權限是怎樣被改變的?
os.stat("a.sh") 查看文件的屬性
注:此部分參考了 這篇博文
st_mode ------> 權限模式(十進制)
st_ino ---------> inode number
st_dev ---------> device
st_nlike --------> number of hard links
st_uid --------> 所有用戶的user_id
st_gid -----------> 所有用戶組的group_id
st_size ----------> 文件大小,以位為單位
st_atime ---------> 文件最后的訪問時間
st_mtime --------> 文件的最后修改時間
st_ctime ---------> 文件的創建時間
查看文件的權限信息,轉八進制,看到 764
修改權限: 只需將文件的權限與stat.S_IXUSR進行或運算