python修改linux中文件(文件夾)的權(quán)限屬性操作
今天生成的對(duì)流云團(tuán)路徑圖片放在linux下,文件的權(quán)限都是rw,沒(méi)有x,后續(xù)的別人的程序調(diào)用不了,這里附上對(duì)三個(gè)屬性的簡(jiǎn)單解釋,有不夠的歡迎大家補(bǔ)充
Linux的權(quán)限不是很細(xì)致,只有RWX三種
r(Read,讀取):對(duì)文件而言,具有讀取文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有瀏覽目錄的權(quán)限。
w(Write,寫(xiě)入):對(duì)文件而言,具有新增,修改,刪除文件內(nèi)容的權(quán)限;對(duì)目錄來(lái)說(shuō),具有新建,刪除,修改,移動(dòng)目錄內(nèi)文件的權(quán)限。
x(eXecute,執(zhí)行):對(duì)文件而言,具有執(zhí)行文件的權(quán)限;對(duì)目錄了來(lái)說(shuō)該用戶具有進(jìn)入目錄的權(quán)限。
1、目錄的只讀訪問(wèn)不允許使用cd進(jìn)入目錄,必須要有執(zhí)行的權(quán)限才能進(jìn)入。
2、只有執(zhí)行權(quán)限只能進(jìn)入目錄,不能看到目錄下的內(nèi)容,要想看到目錄下的文件名和目錄名,需要可讀權(quán)限。
3、一個(gè)文件能不能被刪除,主要看該文件所在的目錄對(duì)用戶是否具有寫(xiě)權(quán)限,如果目錄對(duì)用戶沒(méi)有寫(xiě)權(quán)限,則該目錄下的所有文件都不能被刪除,文件所有者除外
4、目錄的w位不設(shè)置,即使你擁有目錄中某文件的w權(quán)限也不能寫(xiě)該文件
好了話歸正題,下面是重點(diǎn)了:
os.chmod(path,mode) 這個(gè)方法應(yīng)該很簡(jiǎn)單,只需要2個(gè)參數(shù),一個(gè)是路徑,一個(gè)是說(shuō)明路徑的模式,
下面列出了這個(gè)用法中可以使用的一些常用的模式:
stat.S_ISUID: Set user ID on execution. 不常用
stat.S_ISGID: Set group ID on execution. 不常用
stat.S_ENFMT: Record locking enforced. 不常用
stat.S_ISVTX: Save text image after execution. 在執(zhí)行之后保存文字和圖片
stat.S_IREAD: Read by owner. 對(duì)于擁有者讀的權(quán)限
stat.S_IWRITE: Write by owner. 對(duì)于擁有者寫(xiě)的權(quán)限
stat.S_IEXEC: Execute by owner. 對(duì)于擁有者執(zhí)行的權(quán)限
stat.S_IRWXU: Read, write, and execute by owner. 對(duì)于擁有者讀寫(xiě)執(zhí)行的權(quán)限
stat.S_IRUSR: Read by owner. 對(duì)于擁有者讀的權(quán)限
stat.S_IWUSR: Write by owner. 對(duì)于擁有者寫(xiě)的權(quán)限
stat.S_IXUSR: Execute by owner. 對(duì)于擁有者執(zhí)行的權(quán)限
stat.S_IRWXG: Read, write, and execute by group. 對(duì)于同組的人讀寫(xiě)執(zhí)行的權(quán)限
stat.S_IRGRP: Read by group. 對(duì)于同組讀的權(quán)限
stat.S_IWGRP: Write by group. 對(duì)于同組寫(xiě)的權(quán)限
stat.S_IXGRP: Execute by group. 對(duì)于同組執(zhí)行的權(quán)限
stat.S_IRWXO: Read, write, and execute by others. 對(duì)于其他組讀寫(xiě)執(zhí)行的權(quán)限
stat.S_IROTH: Read by others. 對(duì)于其他組讀的權(quán)限
stat.S_IWOTH: Write by others. 對(duì)于其他組寫(xiě)的權(quán)限
stat.S_IXOTH: Execute by others. 對(duì)于其他組執(zhí)行的權(quán)限
下面是例子:
import os,stat os.chmod(’abc’,stat.S_IREAD) os.chmod(’abc’,stat.S_IREAD+stat.S_IWOTH)os.chmod(outputpath,stat.S_IRWXO+stat.S_IRWXG+stat.S_IRWXU)
最后一行當(dāng)時(shí)設(shè)置的時(shí)候我連寫(xiě)了三行,每一行分別寫(xiě)一個(gè)參數(shù),得到的結(jié)果分別是-------rwx,----rwx---,-rwx------,真是被自己的愚蠢打敗了哈哈哈,用加號(hào)就能得到-rwxrwxrwx,就是要把user,group和others分別設(shè)置加起來(lái)。
補(bǔ)充知識(shí):linux下python代碼只在文件目錄下才能調(diào)用,在其他路徑輸入絕對(duì)路徑不能執(zhí)行
沒(méi)想到python代碼放到linux下會(huì)碰到這么多事,在代碼所在的目錄下就可以執(zhí)行,然后跳出一層,用絕對(duì)路徑就不能調(diào)用,應(yīng)該是代碼中用到了相對(duì)路徑,但是你當(dāng)前的相對(duì)路徑并不在文件所在目錄,所以并不能成功調(diào)用,大概是這個(gè)樣子。
下面是解決方案:
par_dir = os.path.dirname(os.path.abspath(__file__))os.chdir(par_dir)
也是技術(shù)大哥傳授的姿勢(shì)~
os.path.abspath(__file__)求出文件所在的絕對(duì)路徑,具體到文件的名.py。通過(guò)os.path.dirname求出文件所在的目錄地址,再通過(guò)os.chdir來(lái)吧當(dāng)前路徑切換到文件所在的路徑,就可以了。
以上這篇python修改linux中文件(文件夾)的權(quán)限屬性操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 網(wǎng)頁(yè)中img圖片使用css實(shí)現(xiàn)等比例自動(dòng)縮放不變形(代碼已測(cè)試)2. vue組件庫(kù)的在線主題編輯器的實(shí)現(xiàn)思路3. idea設(shè)置自動(dòng)導(dǎo)入依賴的方法步驟4. Python安裝并操作redis實(shí)現(xiàn)流程詳解5. AspNetCore&MassTransit Courier實(shí)現(xiàn)分布式事務(wù)的詳細(xì)過(guò)程6. 部署vue+Springboot前后端分離項(xiàng)目的步驟實(shí)現(xiàn)7. ajax post下載flask文件流以及中文文件名問(wèn)題8. Python常用擴(kuò)展插件使用教程解析9. html清除浮動(dòng)的6種方法示例10. ASP腳本組件實(shí)現(xiàn)服務(wù)器重啟
