Выполнение команд Linux с Python на компьютере с Windows

Я пытаюсь научиться выполнять команды командной строки из Python. Я могу сделать это с DOS:

import subprocess
subprocess.call("dir",shell=True)

Это нормально, но я должен быть в состоянии сделать это для команд linux, потому что моя компания использует серверы linux. Я использую Mobaxterm для запуска локального сеанса linux. Когда я пробую это:

import subprocess
subprocess.call("ls",shell=True)

Я получаю эту ошибку от терминала:

'ls' is not recognized as an internal or external command, operable program or batch file.

Что звучит смешно для меня, потому lsчто это явно команда linux.

Если я не включаюshell=True, я получаю эту ошибку:

Traceback (most recent call last):
  File "ConsolePractice.py", line 4, in <module>
subprocess.call("ls")
File "C:Usersmy_usernameAppDataLocalProgramsPythonPython35-32libsubprocess.py", line 560, in call
with Popen(*popenargs, **kwargs) as p:
File "C:Usersmy_usernameAppDataLocalProgramsPythonPython35-32libsubprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "C:Usersmy_usernameAppDataLocalProgramsPythonPython35-32libsubprocess.py", line 1220, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

Так что же я делаю не так? Как я могу заставить это работать?

EDIT: Спасибо за комментарии. Python для Windows не будет работать для того, что я пытаюсь сделать. Я подключился к серверу linux и сделал:

cat > ConsoleCmd.py
import subprocess
subprocess.call("ls",shell=True)
^C
python ConsoleCmd.py

… и lsпобежал. Найдена проблема. Я просто должен получить мои скрипты на сервер и запустить их оттуда. Поблагодарить каждого

1 ответ

  1. Я смог решить эту проблему, открыв сеанс SFTP в Mobaxterm, передав файл python на сервер, а затем запустив файл непосредственно на сервере (python уже был установлен на сервере).