2015-04-08 180 views
0

我正在運行python腳本,首先要做的是在執行整個程序之前需要檢查文件的權限。使用python檢查文件的權限

我目前使用的是os.system("stat -c '%a' /data/lims/LI") 有沒有更好的方法來做到這一點,而不使用os.system?

我實際的編碼是

checker = int(os.system("stat -c '%a' /data/lims/LI")) 
      if checker != 000: 
        print "pass" 

我想檢查文件的權限應該是一個數...像755, 750, and others 如果它是一個可執行權限,不是執行。

+0

您是否檢查過https://docs.python.org/2/library/os.html#os.access?你也可以使用'os.stat(filename).st_mode' – Zero

+0

@JohnGalt我認爲第一個對我來說是完美的!非常感謝你!我只需要檢查它是否可執行 – Tim

+0

[在Python中使用Python檢查文件權限](https://stackoverflow.com/q/1861836/608639),[如何獲取文件的權限掩碼? ](https://stackoverflow.com/q/5337070/608639),[使用python檢查文件的權限](https://stackoverflow.com/q/29517513/608639),[檢查文件的權限蟒蛇](https://stackoverflow.com/q/27434643/608639)等 – jww

回答

2

是的,你可以直接使用Python的os.stat(path)os.access(path)。檢查它是否可執行

if os.access("/data/lims/LI", os.X_OK): 
    print "pass" 

有關更多詳細信息,請參閱Checking File Permissions in Linux with Python

+0

我試過這個,但它打印出整個統計數據不只是它的數量@NickB – Tim

+0

只需從返回的元組中選擇你想要的。 。'os.stat(path)[n]' –

+0

@NickB,爲什麼不包含Tim的使用示例,以便他能看到如何使用由'os.stat'返回的對象中的各個字段? –