Python Вывод выборки подпроцесса при возврате ненулевого статуса выхода 1 - PullRequest
0 голосов
/ 27 мая 2020

Я пытаюсь запустить команду поиска, используя подпроцесс python, чтобы вывести список файлов, находящихся в каталоге. Внутри есть определенные файлы / подкаталоги, к которым у меня нет прав доступа. Я хочу sh просто пропустить эти файлы и перечислить те, к которым у меня есть доступ.

Запуск find / -type f с терминала просто упоминает каталоги, в которых отказано в разрешении, и продолжает печатать доступные файлы. Что-то вроде этого

/var/cache/apt/pkgcache.bin
/var/cache/apt/srcpkgcache.bin
find: ‘/var/cache/apt/archives/partial’: Permission denied
/var/cache/apt/archives/lock
/var/cache/jaeger/jaeger-1.16.0-linux-amd64.tar.gz

Я пытаюсь имитировать c такое же поведение, используя вызов подпроцесса python, как показано ниже. Однако код просто выдает исключение Command '['find', '/', '-type', 'f']' returned non-zero exit status 1

def subprocess_check_output(command):
    try:
        output = subprocess.check_output(command, universal_newlines=True)
    except Exception as e:
        print(e)
        sys.exit(1)
    else:
        return output

command = ['find', dir, '-type', 'f']
accessible_files = subprocess_check_output(command).splitlines()

Как мне обойти это, чтобы получить список всех доступных файлов?

...