从python脚本到运行的python shell脚本的自动命令行输入

时间:2019-07-05 16:53:58

标签: python python-3.x shell command-line

我有一个Python Shell脚本,该脚本通过导入CMD进行格式化,并使用结构为do_*(self, arg)的命令。当我输入命令行时,该脚本可以完美运行,但是我试图编写一个脚本来处理数据,确定要运行的命令并在运行时将命令输入到Shell中以执行所需的命令。这有可能吗?如果可以,怎么办?

示例:

 #!/usr/bin/env python
class exampleShell(cmd.Cmd):
def do_exit(self, inp):
        print("Bye")
        return True
MyPrompt().cmdloop()

因此,如果我运行该脚本并在命令行中键入exit,它将显示“ Bye”,但我希望能够运行一个单独的脚本,该脚本可以将exit命令发送到该脚本,而无需自己输入。 / p>

1 个答案:

答案 0 :(得分:0)

您似乎正在尝试编写命令解释器,并且允许对Python脚本访问其命令?

考虑将公共部分分解出来,然后从解释器或其他脚本中导入。

# commands.py

def foo(params): ...
def bar(params): ...
#!/usr/bin/env python
# interpreter; use it as a shell command / REPL.

import commands

class Shell(cmd.Cmd):
  def do_foo(self, params):
    return commands.foo(params)
  # etc
# another-script.py; use it to run complex custom logic.

import commands

def someLogic(x):
  if x > 1:
    commands.foo(x)
  else:
    commands.bar(x + 100)

直到您进一步解释您正在解决的 real 问题是什么之前,仍然很难说出哪种解决方案会有所帮助。