Python自带了CMD模块,这个模块可以使Python程序更加优雅地运行脚本。下面是如何使用CMD模块运行Python脚本的详细攻略。
安装CMD模块
CMD模块在Python官方文档中的称呼是cmd — Support for line-oriented command interpreters
。这个模块已经默认安装在标准Python环境中,你无需再次安装。如果你的Python环境中没有CMD模块,你可以使用pip install cmd
安装。
编写基本命令行程序
要写一个基本的命令行程序,我们需要继承cmd.Cmd
类并定义一些命令行方法。以下是一个简单的例子,它是一个计算器程序,实现了加、减、乘、除四种基本算术运算。
import cmd
class Calc(cmd.Cmd):
def do_add(self, arg):
"""Add two numbers together"""
nums = arg.split()
res = sum(map(float, nums))
print(res)
def do_sub(self, arg):
"""Sub two numbers together"""
nums = arg.split()
res = float(nums[0]) - float(nums[1])
print(res)
def do_mul(self, arg):
"""Muliply two numbers together"""
nums = arg.split()
res = float(nums[0]) * float(nums[1])
print(res)
def do_div(self, arg):
"""Div two numbers"""
nums = arg.split()
res = float(nums[0]) / float(nums[1])
print(res)
def do_quit(self, arg):
"""Quit the program"""
return True
if __name__ == '__main__':
Calc().cmdloop()
使用cmd.Cmd
类创建一个基本的命令行程序是非常简单的。我们只需要定义一些do_
开头的方法,在这些方法中实现我们想要的功能。
在上面的例子中,我们定义了四种基本算术运算方法和一个退出方法。当用户在提示符处输入这些方法的名称时,程序就会按照这些方法的实现来进行相应的计算。如果用户在提示符处输入quit
,程序就会退出。
运行基本命令行程序
在进入程序的主界面,我们可以使用标准的Python交互式命令行来运行基本命令行程序。要做到这一点,我们只需要将程序保存为calc.py
并在命令行中输入以下命令:
$ python calc.py
此时,程序将会进入一个交互式的环境,并显示一个提示符Calc >
。此时,我们只需要在命令行中输入我们想要执行的命令,例如:
Calc > add 1 2 3
6.0
Calc > sub 5 2
3.0
Calc > mul 5 6
30.0
Calc > div 10 3
3.3333333333333335
Calc > quit
如果我们运行以上命令,则程序将会返回相应的输出并等待下一个输入。
使用CMD模块启动命令行程序
在上面的例子中,我们是使用标准的Python交互式命令行来运行我们的基本命令行程序。但是,这只是一个简单的演示。在实际生产环境中,我们通常需要启动自己编写的程序(即我们上面的calc.py
)并让它直接进入命令行环境。这可以通过使用CMD
模块中的cmdloop()
方法来实现。
以下是一个使用CMD模块启动命令行程序的示例。这个示例与之前的计算器程序类似,但是它使用cmdloop()
方法直接在启动时进入命令行环境。
import cmd
class Calc(cmd.Cmd):
prompt = 'Calc > '
def do_add(self, arg):
"""Add two numbers together"""
nums = arg.split()
res = sum(map(float, nums))
print(res)
def do_sub(self, arg):
"""Sub two numbers together"""
nums = arg.split()
res = float(nums[0]) - float(nums[1])
print(res)
def do_mul(self, arg):
"""Muliply two numbers together"""
nums = arg.split()
res = float(nums[0]) * float(nums[1])
print(res)
def do_div(self, arg):
"""Div two numbers"""
nums = arg.split()
res = float(nums[0]) / float(nums[1])
print(res)
def do_quit(self, arg):
"""Quit the program"""
return True
if __name__ == '__main__':
Calc().cmdloop()
在这个例子中,我们使用了prompt
属性来设置命令行提示符。当使用者执行程序时,就会进入一个交互式的命令行环境,程序会等待用户输入命令。用户可以输入add
、sub
、mul
、div
、quit
等命令来执行相应的操作。
我们可以将此程序保存为calc.py
,然后在命令行中通过以下方式启动:
$ python3 -m calc
这样,程序将会进入启动时的命令行环境,并等待用户输入命令。
综上所述,我们可以通过继承cmd.Cmd
类并定义一些do_
开头的方法来编写基本的命令行程序。此外,我们还可以使用CMD
模块中的cmdloop()
方法启动我们自己的命令行程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用CMD模块更优雅的运行脚本 - Python技术站