Как получить результат уже запущенной программы?

Красивое и короткое однострочное письмо Python может быть создано на основе ответа Жиля :

$ python -c 'import os,sys;print(os.path.ismount(sys.argv[1]))' /mnt/HDD
True

$ python -c 'import os,sys;print(os.path.ismount(sys.argv[1]))' /etc                
False

Я сделал собственную реализацию команды mountpoint в Python, которая анализирует ] / proc / self / mounts файл. Вроде того же поведения, что и mount в ответе Стефана, за исключением того, что команда анализирует / proc / self / mountinfo . Использование очень простое: is_mountpoint.py / path / to / dir .

#!/usr/bin/env python3
from os import path
import sys

def main():

    if not sys.argv[1]:
       print('Missing a path')
       sys.exit(1)

    full_path = path.realpath(sys.argv[1])
    with open('/proc/self/mounts') as mounts:
       print
       for line in mounts:
           if full_path in line:
              print(full_path,' is mountpoint')
              sys.exit(0)
    print(full_path,' is not a mountpoint')
    sys.exit(1)

if __name__ == '__main__':
    main()

Тестовый запуск:

$ python3 ./is_mountpoint.py /mnt/HDD                                          
/mnt/HDD  is mountpoint
$ lsblk | grep HDD
└─sdb6   8:22   0 405.3G  0 part /mnt/HDD
$ python3 ./is_mountpoint.py $HOME                                             
/home/xieerqi  is not a mountpoint

1
29.06.2015, 17:50
0 ответов

Теги

Похожие вопросы