簡體   English   中英

Python-檢查linux分區是只讀還是讀寫?

[英]Python - Check if linux partition is read-only or read-write?

我有一個在beaglebone上運行的python應用程序。 如何(在Python中)檢查“ / mnt”分區是否以只讀或讀寫方式安裝?

編輯:答案做出了您計划寫入/ mnt的假設。

我只是嘗試寫它並捕獲OSError異常來處理只讀情況。

這應該為您解決問題:

def isMountReadonly(mnt):
    with open('/proc/mounts') as f:
        for line in f:
            device, mount_point, filesystem, flags, __, __ = line.split()
            flags = flags.split(',')
            if mount_point == mnt:
                return 'ro' in flags
        raise ValueError('mount "%s" doesn\'t exist' % mnt)

print "read only: %s" % isMountReadonly('/mnt')

輸出:

read only: False

解決方案非常簡單,只有1個syscall(statvfs)。

stat = os.statvfs('/mnt')

# Python < 3.2
ST_RDONLY = 1
readonly = bool(stat.f_flag & ST_RDONLY)

# Python >= 3.2
readonly = bool(stat.f_flag & os.ST_RDONLY)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM