我有一个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>
答案 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 问题是什么之前,仍然很难说出哪种解决方案会有所帮助。