1. os.system()
这个方法直接调用标准C的system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。
>>>import os
>>>output = os.system('cat /proc/cpuinfo')
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
... ...
>>>output # doesn't capture output
0
2. os.popen()
这个方法执行命令并返回执行后的信息对象,是通过一个管道文件将结果返回。
>>>output = os.popen('cat /proc/cpuinfo')
>>>output
>>>print output.read()
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
... ...
>>>
3. subprocess模块
该模块是一个功能强大的子进程管理模块,是替换os.system, os.spawn*等方法的一个模块。
>>>import subprocess
>>>subprocess.Popen(["ls", "-l"]) # python2.x doesn't capture
output
>>>subprocess.run(["ls", "-l"]) # python3.x doesn't capture
output
>>>total 68
drwxrwxr-x 3 xl xl 4096 Feb 8 05:00 com
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Desktop
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Documents
drwxr-xr-x 2 xl xl 4096 Jan 21 07:44 Downloads
... ...
>>>
关于python调用cmd命令,主要介绍两种方式: 一、Python的OS模块OS模块调用CMD命令有两种方式:os.system(),os.popen()。 都是用当前进程来调用。1、os.system()a、简单粗暴的执行cmd指令 b、返回结果为0表示执行成功,无法获取命令输出的内容,本在cmd输出的内容会直接在控制台输出。 c、当命令运行结束后接着往下面执行程序(同步阻塞式)。用法如:os.system("ipconfig")。2、os.popen()a、能获取DOS命令输出的内容。 b、os.popen()返回的是一个file对象,那么可以跟打开文件一样操作,r是以读的方式打开。 c、当命令运行结束后接着往下面执行程序(同步阻塞式)。 注意:os.popen() 方法用于从一个命令打开一个读写管道,在Unix,Windows中有效。 用法如: with os.popen(r"adb devices","r")as f: text = f.read()() print(text)# cmd输出结果二、管道subprocess模块a、在当前进程下产生子进程。 b、用wait()函数等待结果(异步非阻塞式)。【方法1】result = subprocess.check_output(r'adb devices') ## 命令执行的输出结果放到了result里 print(result) 【方法2】 process = subprocess.Popen(r'adb devices',shell=True,stdout=subprocess.PIPE,stderr=subprocess.STDOUT) command_output = process.stdout.read().decode('gbk') print(command_output) Notices: 有些命令行是异步执行的不会马上返回输出,所以有时候我们要先等这个命令行执行完毕才能从stdout读出来数据。这个时候要加上 process.wait()我的GitHubPython在命令行定义函数的方法如下:打开电脑运行窗体,输入cmd,点击确定
命令行窗口,输入python,进入python命令行,编写函数后,敲两次回车,即定义好了函数
测试函数可以正常使用
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python如何在命令行定义函数的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!