libmount的包装器,用于读取和操作文件系统表。
libmount的Python项目详细描述
用于读取和操作文件系统表的库,如/etc/fstab。
它使用ctypes来包装libmount,它是 util-linux。
用法
文件系统表的每次读取和操作都应该在 with锁定块:
from libmount import FilesystemTable with FilesystemTable() as fstab: print fstab[0].target
FilesystemTable的作用类似于一个列表,因此您可以切片并迭代:
with FilesystemTable() as fstab: print [fs.source for fs in fstab] print fs[2:5]
FilesystemTable对象包含Filesystem对象,每个对象都有 source、target、fstab和options属性。前三名 是字符串,而后者是set-类似于:
with FilesystemTable() as fstab: fs = fstab[0] # Will print e.g. "/dev/sda1 on / type ext4 (user_xattr)" print fs fs.source = '/dev/sda2' print "Options: %s" % ", ".join(fs.options) fs.options -= set(['user_xattr'])
要更新磁盘上文件系统表,请调用save():
with FilesystemTable() as fstab: for fs in fstab: if fs.fstype in ('ext3', 'ext4'): fs.options.add('user_xattr') fstab.save()
限制
尚无法添加或删除条目。这还不够彻底 由非特权用户运行时测试。
反馈
感谢您对infodev@oucs.ox.ac.uk的反馈, 或者作为the issue tracker中的问题。