[Python] 原來 os.chmod() 要用八進位數…

[Python] 原來 os.chmod() 要用八進位數…

最近遇到一個問題,在 Linux 上執行一個 python 程式之後,

某些檔案的屬性被改的很怪異,

像是原本預期是 rwxr-xr-x 的,變成了 -rwxr-xr-t…

 

看了一下程式,好像沒有什麼問題: 

os.chmod(“test.txt”, 755)

 

研究了一下 python 的文件,提到 mode 參數部分可以用 stat 裡面定義的一些常數,

但奇怪的是像 stat.S_IRWXU 這個常數理論上應該要是 700,但實際上是 448…

 

又研究了一下,原來 755 這個數值應該是八進位的,

所以 755 中的 700 (八進位) 其實是十進位的 448。

因此原本的程式只要改成 0755,在 python 中代表八進位數,就 OK 囉~~

os.chmod(“test.txt”, 0755)

 

 

//
//

(本頁面已被瀏覽過 97 次)

發表迴響

你的電子郵件位址並不會被公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料