在 Windows 计算机上从 Python 运行 Linux 命令



我正在尝试学习如何从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

那我做错了什么呢?我怎样才能让它工作?

编辑:感谢您的评论。Python for Windows 不适用于我想要做的事情。我连接到 Linux 服务器并执行以下操作:

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

ls跑了。发现问题。我只需要将我的脚本放到服务器上并从那里运行它们。谢谢大家

我能够通过在 Mobaxterm 中打开 SFTP 会话,将 python 文件传输到服务器,然后直接在服务器上运行该文件来解决此问题(python 已安装在服务器上)。

相关内容

  • 没有找到相关文章

最新更新