Как мне найти исполняемый файл с помощью Python в Linux? - PullRequest
6 голосов
/ 22 января 2012

Как мне найти исполняемый файл, используя python в Linux? Исполняемые файлы не имеют расширений и находятся в папке вместе с файлами с разными расширениями. Спасибо

РЕДАКТИРОВАТЬ: Я имею в виду под поиском, чтобы получить имена всех исполняемых файлов и сохранить их в списке или кортеже. Спасибо

Ответы [ 3 ]

6 голосов
/ 22 января 2012

Чтобы сделать это на Python:

import os
import stat

executable = stat.S_IEXEC | stat.S_IXGRP | stat.S_IXOTH
for filename in os.listdir('.'):
    if os.path.isfile(filename):
        st = os.stat(filename)
        mode = st.st_mode
        if mode & executable:
            print(filename,oct(mode))
1 голос
/ 16 сентября 2015

Функция os.access () в некоторых случаях лучше, чем os.stat () , поскольку она проверяет, может ли файл быть выполнен you , в соответствии с владельцем файла, группой и разрешениями.

import os

for filename in os.listdir('.'):
    if os.path.isfile(filename) and os.access(filename, os.X_OK):
        print(filename)
1 голос
/ 22 января 2012

Если при поиске вы хотите перечислить все исполняемые файлы в каталоге, чем использовать команду из этого SuperUser Link . Вы можете использовать Модуль подпроцесса для выполнения команд из кода Python.

import shlex   
executables = shlex.split(r'find /dir/mydir -executable -type f')
output_process = subprocess.Popen(executables,shell=True,stdout=subprocess.PIPE)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...