Python實(shí)現(xiàn)文件只讀屬性的設(shè)置與取消
一、使用os.chmod來設(shè)置文件只讀屬性
我們可以使用 os 模塊中的chmod(全程:change mode)來設(shè)置或取消文件的只讀屬性。
完整語法:
def chmod(path: FileDescriptorOrPath, mode: int,*, dir_fd: int | None = None, follow_symlinks: bool = True) -> None: ...
常見語法:
def chmod(path: FileDescriptorOrPath, mode: int)
- path:需要修改只讀屬性的文件路徑或目錄路徑;
- mode:權(quán)限代碼,由八進(jìn)制數(shù)字(octat)組成。如0o444表示只讀的權(quán)限,0o666表示“讀寫”的權(quán)限,0o777表示讀寫執(zhí)行的權(quán)限等等。
使用方法:
- 引入os模塊;
- 使用os.chmod()方法去設(shè)置或取消文件的只讀屬性;
- 將文件路徑和權(quán)限代碼傳遞os.chmod()方法
示例如下:
import os # set file as read-only # 4 = read(4) os.chmod('readonly.txt', 0o444) # cancel read-only property # 6 = read(4) + write(2) os.chmod('readonly.txt', 0o666) # set file as read-write-execute # 7 = read(4) + write(2) + execute(1) os.chmod('readonly.txt', 0o777)
當(dāng)然,您也可以這樣寫:
import os,stat # (1)set file as read-only # 4 = read(4) # os.chmod('readonly.txt', 0o444) os.chmod('readonly.txt', stat.S_IRUSR + stat.S_IRGRP + stat.S_IROTH) # (2)cancel read-only property # 6 = read(4) + write(2) # os.chmod('readonly.txt', 0o666) os.chmod('readonly.txt', stat.S_IWUSR + stat.S_IRUSR + stat.S_IWGRP + stat.S_IRGRP + stat.S_IWOTH + stat.S_IROTH) # (3)set file as read-write-execute # 7 = read(4) + write(2) + execute(1) # os.chmod('readonly.txt', 0o777) os.chmod('readonly.txt', stat.S_IXUSR + stat.S_IWUSR + stat.S_IRUSR + stat.S_IXGRP + stat.S_IWGRP + stat.S_IRGRP + stat.S_IXOTH + stat.S_IWOTH + stat.S_IROTH) # 或 os.chmod('readonly.txt', stat.S_IRWXU + stat.S_IRWXG + stat.S_IRWXO) # 我們可以打印出來看看 # 0o444 print(oct(stat.S_IRUSR + stat.S_IRGRP + stat.S_IROTH)) # 0o666 print(oct(stat.S_IWUSR + stat.S_IRUSR + stat.S_IWGRP + stat.S_IRGRP + stat.S_IWOTH + stat.S_IROTH)) # 0o777 print(oct(stat.S_IXUSR + stat.S_IWUSR + stat.S_IRUSR + stat.S_IXGRP + stat.S_IWGRP + stat.S_IRGRP + stat.S_IXOTH + stat.S_IWOTH + stat.S_IROTH)) print(oct(stat.S_IRWXU + stat.S_IRWXG + stat.S_IRWXO))
結(jié)果輸出:
0o444
0o666
0o777
0o777
二、關(guān)于權(quán)限代碼mode的解讀
如上圖所示,文件調(diào)用權(quán)限分為三級 :
- 文件所有者(Owner/Users)
- 用戶組用戶(Group Users)
- 其它用戶(Other Users)
其中,每級權(quán)限代碼范圍:1~7。
符號(hào)含義:
- R:讀,Read的縮寫,八進(jìn)制值為 4;
- W:寫,Write的縮寫,八進(jìn)制值為 2;
- X:執(zhí)行,Execute的縮寫,八進(jìn)制值為 1;
如:0o444表示只讀的權(quán)限,0o666表示“讀寫”的權(quán)限,0o777表示讀寫執(zhí)行的權(quán)限等等;
文件所有者(User)的權(quán)限:
限代碼 | 英文名 | 說明 |
---|---|---|
stat.S_IXUSR | Execute User | 擁有者具有執(zhí)行權(quán)限0o100 |
stat.S_IWUSR | Write User | 擁有者具有寫權(quán)限0o200 |
stat.S_IRUSR | Read User | 擁有者具有讀權(quán)限0o400 |
stat.S_IRWXU | Read Write Execute User | 擁有者有全部權(quán)限(權(quán)限掩碼)0o700 |
文件用戶組(Group)的權(quán)限:
權(quán)限代碼 | 英文名 | 說明 |
---|---|---|
stat.S_IXGRP | Execute Group | 組用戶有執(zhí)行權(quán)限0o010 |
stat.S_IWGRP | Write Group | 組用戶有寫權(quán)限0o020 |
stat.S_IRGRP | Read Group | 組用戶有讀權(quán)限0o040 |
stat.S_IRWXG | Read Write Execute Group | 組用戶有全部權(quán)限(權(quán)限掩碼)0o070 |
其它:
權(quán)限代碼 | 說明 |
---|---|
stat.S_ISVTX | 目錄里文件目錄只有擁有者才可刪除更改0o1000 |
stat.S_ISGID | 執(zhí)行此文件其進(jìn)程有效組為文件所在組0o2000 |
stat.S_ISUID | 執(zhí)行此文件其進(jìn)程有效用戶為文件所有者0o4000 |
stat.S_IREAD | windows下設(shè)為只讀 |
stat.S_IWRITE | windows下取消只讀 |
到此這篇關(guān)于Python實(shí)現(xiàn)文件只讀屬性的設(shè)置與取消的文章就介紹到這了,更多相關(guān)Python文件只讀內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python基礎(chǔ)教程之獲取本機(jī)ip數(shù)據(jù)包示例
本文主要介紹了python獲取本機(jī)ip數(shù)據(jù)包的示例,大家參考使用吧2014-02-02輕松實(shí)現(xiàn)TensorFlow微信跳一跳的AI
這篇文章主要教大家如何輕松實(shí)現(xiàn)TensorFlow微信跳一跳的AI,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01使用python模塊plotdigitizer摳取論文圖片中的數(shù)據(jù)實(shí)例詳解
這篇文章主要介紹了使用python模塊plotdigitizer摳取論文圖片中的數(shù)據(jù),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03Python 函數(shù)繪圖及函數(shù)圖像微分與積分
今天小編就為大家分享一篇Python 函數(shù)繪圖及函數(shù)圖像微分與積分,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11PyQt5 控件字體樣式等設(shè)置的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5 控件字體樣式等設(shè)置的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05Django實(shí)現(xiàn)列表頁商品數(shù)據(jù)返回教程
這篇文章主要介紹了Django實(shí)現(xiàn)列表頁商品數(shù)據(jù)返回教程,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-04-04基于python requests selenium爬取excel vba過程解析
這篇文章主要介紹了基于python requests selenium爬取excel vba過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08