执行其他应用程序

本节主要介绍通过os库中的system()方法实现调用其他代码文件,使得当前代码程序既可执行其他代码文件,又可获取执行后的结果

命令提示符窗口或终端

在Windows系统和macOS系统中分别具有命令提示符(cmd)工具和终端工具,其功能是实现在无图形界面的情况下操作计算机。

启动命令提示符窗口后,默认进入的文件路径为C:\Users\Administrator。由于Windows系统采用多磁盘格局,因此当需要进入其他路径时,例如进入E盘,使用命令E:即可。当需要进入磁盘中的“书代码”文件夹时,使用命令cd 书代码即可

如果要在“书代码”文件夹中再创建一个文件夹,可以执行以下命令:
md 新目录
该命令中的md表示创建文件夹,执行该命令后将创建一个名为“新目录”的新文件夹。

常用 Windows 系统命令集

  • 启动程序和功能appwiz.cpl

  • 启动计算器calc

  • 启动控制面板control

  • 自动关机shutdown

  • 启动画图程序mspaint

  • 系统还原rstrui

  • 创建目录md

  • 启动注册表regedit.exe

  • 远程桌面连接mstsc

  • 启动屏幕键盘osk

  • 复制文件copy

  • 查看网络接口状态netstat

  • 测试网络连接ping

  • 文件上传(FTP)ftp

system()方法

os库中的system(命令)方法可用于实现命令提示符窗口的命令或终端的命令。

示例代码(启动计算器、微信):

import os
os.system('calc')
os.system("D:\\Program Files (x86)\\Tencent\\WeChat\\WeChat.exe")

注意:命令是字符串的形式

如果需要在该代码中执行另一个代码文件,代码如下:

a = 0
i = 0
while a<1000:
    i += 1
    a += i
print(a)

该代码中i的值每循环一次都会增加1,a每循环一次都会增加i,因此a的值为从0开始依次+1+2+3+……,一直到超过1000时输出a的值。

popen()方法


os库中的popen()方法可用于获取执行命令后的结果

示例代码:

import os
a = os.popen("E:\\书代码\\第9章\\第9章第3个程序.py", "r")
print(a.read())

第2行代码表示执行“E:\书代码\第9章”路径中的“第9章第3个程序.py”代码文件,popen()与system()方法类似。

注意:system()方法不能获取执行该代码文件后的输出结果。而popen()方法可以获取执行代码文件后返回的结果

sys库

Python标准库中的sys库用于与Python解释器文件进行交互,例如获取Python的版本信息、传递信息到Python代码中等。

获取python信息

获取Python的解释器版本信息

sys库的version用于获取当前Python解释器版本号,version_info用于获取版本的详细信息。

示例代码:

import sys
print(sys.version)
print(sys.version_info)

执行结果:

3.7.9 (tags/v3.7.9:13c94747c7, Aug 17 2020, 18:58:18) [MSC v.1900 64 bit (AMD64)]
sys.version_info(major=3, minor=7, micro=9, releaselevel='final', serial=0)

为了确保代码的稳定性,通常在执行代码前会通知用户确保安装了正确的python解释器

示例代码:

import sys
if (sys.version_info[0]*10 + sys.version_info[1])/10 < 3.7:
    print("您的Python版本过低,请安装Python 3.7及以上版本")
    sys.exit()
else:
    print("您的Python版本正确,代码将继续运行")
print('hello world')

获取Python的其他信息

sys库中还提供了获取Python的其他信息的方法,具体如下:

maxsize属性:获取当前Python支持的对象中包含的最大数据长度。

platform属性:获取当前计算机的操作系统。

copyright属性:获取当前Python的版权信息。

executable属性:获取当前Python解释器在计算机中的目录地址。

exec_prefix属性:获取当前Python的安装目录地址。

示例代码:

import sys
print(sys.maxsize)
print(sys.platform)
print(sys.copyright)
print(sys.executable)

退出程序

当代码程序在执行过程中处于某种状态后需要退出时,可以使用exit()函数。其使用形式如下:
exit(status=None)

参数status:如果值被省略或为None,则默认为0,表示成功退出。如果值为其他整数,则作为系统退出状态。如果是其他信息,则会被当作报错信息输出。

示例代码:

import sys
if (sys.version_info[0]*10+sys.version_info[1])/10 < 3.8:
   sys.exit('您的Python版本过低,请安装Python 3.8及以上版本')
else:
   print("您的Python版本正确,代码将继续运行")
print('hello world')

argv获取输入命令

argv函数可用于获取用户输入的参数并以列表的形式返回,列表的索引号为0时默认返回当前代码文件所在的目录地址。

示例代码:

mport sys
print(sys.argv)

在命令提示符窗口中执行代码文件的使用形式如下:
python 代码路径

在执行代码文件时添加的参数使用形式如下:

python 代码路径 参数

示例代码(运行代码文件的同时接收各个参数并处理)

说明:使用for循环,循环次数由接收的参数个数决定,且由于sys.argv[0]的默认值为当前执行代码路径,因此为便于后面的代码能直接获取到用户输入的参数,循环从1开始。