我在Linux下的Python中有一些文件path,我需要弄清楚它是否是一个块设备 – 表示磁盘或分区。 inputls -l时,这些信息是可见的,例如
brw-rw---- 1 root disk 8, 1 09-12 18:01 /dev/sda1
我的意思是在这个输出开始的字母b 。 这是可能在Python中使用内置库来得到这样的东西吗? 最终我可以使用subprocess获取“ls -l”的结果,并检查第一个字符是否正确,但我觉得可以有更好的解决scheme。 不幸的是我找不到这个。 谢谢。
你可以使用stat.S_ISBLK和os.stat来使用stat
库:
In [1]: import os In [2]: import stat In [3]: mode = os.stat("/dev/sda2").st_mode In [4]: stat.S_ISBLK(mode) Out[4]: True In [5]: mode = os.stat("/dev/sr0").st_mode In [6]: stat.S_ISBLK(mode) Out[6]: True
由于3.4 pathlib
提供了方便的函数Path.is_block_device()
>>> import pathlib >>> p = pathlib.Path('/dev/vda') >>> p.is_block_device() True