Подпроцесс Python3 не может запустить команду "la" или "ll" - PullRequest
0 голосов
/ 22 ноября 2018
completeProcess = subprocess.run("la")

Это мой код для запуска команд через python, и он вызывает эту ошибку:

Traceback (most recent call last):
  File "script_senior.py", line 171, in <module>
    completeProcess = subprocess.run("la") # doesn't capture output
  File "/usr/lib/python3.5/subprocess.py", line 693, in run
    with Popen(*popenargs, **kwargs) as process:
  File "/usr/lib/python3.5/subprocess.py", line 947, in __init__
    restore_signals, start_new_session)
  File "/usr/lib/python3.5/subprocess.py", line 1551, in _execute_child
    raise child_exception_type(errno_num, err_msg)
FileNotFoundError: [Errno 2] No such file or directory: 'la'

Моя ОС - это Ubuntu, и когда в терминале введите «la», она выдаст список файлов (включить скрытые файлы) в текущем рабочем каталоге.и "ll" cmd выведет подробности файла.но я не могу использовать их в подпроцессе python api

Как мне добиться этой функции?Есть ли какой-нибудь общий API для запуска команд или просто питон не распознал "la"

1 Ответ

0 голосов
/ 22 ноября 2018

la - это псевдоним 'ls -A'.Это псевдоним оболочки по умолчанию в таких системах, как Ubuntu.Если вы хотите запустить его, просто используйте:

completeProcess = subprocess.run(["ls","-A"])

и если вы ищете стандартный вывод, вы можете использовать что-то вроде:

completeProcess = subprocess.run(["ls","-A"] , stdout=subprocess.PIPE)
print(completeProcess.stdout.decode())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...