【Python办公自动化进阶指南:系统交互与网页操作实战】

9.3执行其他应用程序

9.3.1命令提示符窗口或终端

命令提示符窗口或终端

终端(Terminal):

广义:指计算机系统中用于与操作系统进行交互的工具,以文本形式显示信息并接收输入。

狭义(macOS/Linux):指代那个黑色的(或自定义颜色)的应用程序窗口,提供了一个命令行界面(CLI)。

命令提示符(Command Prompt / CMD):

这是 Windows 操作系统中默认的命令行解释器。它是一个应用程序(cmd.exe),提供了一个窗口,让用户可以通过键盘输入命令来控制计算机。

注意:虽然大家习惯把那个黑色的窗口叫"CMD",但严格来说,CMD 是运行在窗口中的"Shell"(壳)。

window下常见的"终端"环境

|------------------|-----------------------------------------------------------------------------------------------------------|
| 名称 | 描述 |
| CMD | Windows 传统的命令行解释器,语法较为古老,功能相对基础。 |
| PowerShell | 微软推出的现代化命令行 Shell,功能比 CMD 强大得多,基于 .NET,支持对象流操作。推荐替代 CMD。 |
| Windows Terminal | 这是一个新式窗口应用程序。它本身不是 CMD 也不是 PowerShell,而是一个"容器"。它可以同时托管 CMD、PowerShell、WSL (Linux) 等多个标签页,且支持分屏、美化等功能。 |

提示符窗口中的部分命令

|--------------|---------|
| 命令 | 功能描述 |
| appwiz.cpl | 启动程序和功能 |
| calc | 启动计算器 |
| control | 启动控制面板 |
| shutdown | 自动关机 |
| mspaint | 启动画图程序 |
| rstrui | 系统还原 |
| md | 创建目录 |
| regeditt.exe | 启动注册表 |
| mstsc | 远程桌面连接 |
| osk | 启动屏幕键盘 |
| copy | 复制文件 |
| netstat | 查看网络端口 |
| ping | 测试网络连接 |
| ftp | 上传文件 |

9.3.2system()方法

执行系统命令或外部程序,直接调用命令提示符/终端命令。

特点:

会启动一个子进程执行命令,但无法获取命令执行后的输出结果。

常用于直接启动外部程序、脚本或执行系统操作。

典型场景:自动启动软件、运行其他Python脚本、打开文件等。

python 复制代码
import os

# 启动计算器
os.system('calc')

# 启动微信(路径根据实际安装位置调整)
os.system(r"D:\Program Files (x86)\Tencent\WeChat\WeChat.exe")

# 运行另一个Python脚本
os.system(r"E:\书代码\第9章\第9章第3个程序.py")

# 开机自动启动软件示例(放在桌面,双击运行)
os.system(r"D:\Program Files (x86)\Tencent\WeChat\WeChat.exe")
os.system(r"E:\工作\工作报表.xlsx")

9.3.3popen()方法

执行系统命令并获取其输出结果,读取方式与操作文件类似。

特点:

返回一个类文件对象,可以通过 read() 、 readlines() 等方法读取命令输出。

参数 'r' 表示以只读模式打开。

典型场景:需要获取命令执行结果并进一步处理的场景。

python 复制代码
import os

# 执行外部Python脚本并获取输出
a = os.popen(r"E:\书代码\第9章\第9章第3个程序.py", 'r')
print(a.read())  # 读取并打印脚本的输出结果

被调用的示例脚本(第9章第3个程序.py

python 复制代码
# 计算 1+2+3+... 直到和超过1000
a = 0
i = 1
while a <= 1000:
    a += i
    i += 1
print(a)  # 输出最终的和
 

9.5*sys库

9.5.1 获取 Python 信息

核心功能

  • sys.version:获取 Python 解释器的版本号字符串
  • sys.version_info:获取版本详细信息的元组(主版本、次版本、小版本等)
  • sys.maxsize:获取当前 Python 支持的最大数据长度
  • sys.platform:获取当前操作系统标识
  • sys.copyright:获取 Python 版权信息
  • sys.executable:获取 Python 解释器的路径
  • sys.exec_prefix:获取 Python 安装目录地址
python 复制代码
import sys

# 获取版本信息
print(sys.version)
print(sys.version_info)

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

# 获取其他信息
print(sys.maxsize)
print(sys.platform)
print(sys.copyright)
print(sys.executable)

9.5.2 退出程序

核心功能

  • sys.exit([status]):主动退出当前程序
    • status:可选参数,默认None(等价于 0,表示成功退出)
    • 传入非 0 整数或字符串会被当作报错信息输出
python 复制代码
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')

9.5.3 argv 获取输入命令

核心功能

sys.argv:获取命令行参数的列表

sys.argv[0]:默认是当前执行的代码文件路径

sys.argv[1:]:后续元素为用户传入的命令行参数

python 复制代码
import sys
import os

# 打印命令行参数
print(sys.argv)

# 处理命令行参数
for i in range(1, len(sys.argv)):
    if sys.argv[i] == '-h':
        print('''本代码的帮助
        -h: 用于查询帮助
        -a: 用于获取Python的所有关键字
        -c: 用于获取Python安装的所有第三方库的列表''')
    if sys.argv[i] == '-a':
        print('开始查询Python的所有关键字:')
        help("keywords")
    if sys.argv[i] == '-c':
        print('开始查询Python安装的所有第三方库:')
        os.system('pip list')

运行方式:在命令提示符执行

python 复制代码
python 代码路径.py -h
python 代码路径.py -a
python 代码路径.py -c

9.5.4 stdout、stdin 和 stderr

核心功能

  • sys.stdout:标准输出流,print() 函数的底层实现
  • sys.stdin:标准输入流,input() 函数的底层实现
  • sys.stderr:标准错误流,用于输出错误信息(通常显示为红色)
python 复制代码
import sys

# 标准输出
sys.stdout.write('hello')

# 标准输入
a = sys.stdin.readline()
print(a)

# 标准错误
sys.stderr.write('错误,请修改!')

14.操作 HTML 网页

14.1HTML 网页的介绍

HTML 是超文本标记语言,不是编程语言,用于创建网页

网页文件扩展名:.html.htm

每个网页都包含一个基础框架,其他内容在框架内扩展

|--------------------------|--------------------------|
| 标签 | 作用 |
| <!DOCTYPE html> | 声明当前网页为 HTML5 版本,帮助浏览器识别 |
| <html> | 网页根元素,包含所有网页内容 |
| <head> | 网页头部,包含标题、元数据等(不在页面显示 |
| <meta charset="UTF-8"> | 设置字符编码为 UTF-8,避免乱码 |
| <title> | 设置网页标题,显示在浏览器标签上 |
| <body> | 网页正文区域,所有可见内容都在这里 |

14.2 常用标签

14.2.1 标题标签

用 <h1>~<h6> 表示,级别从高到低,字体大小依次减小

html 复制代码
<body>
    <h1>我是标题1</h1>
    <h2>我是标题2</h2>
    <h3>我是标题3</h3>
    <h4>我是标题4</h4>
    <h5>我是标题5</h5>
    <h6>我是标题6</h6>
</body>

14.2.2 段落标签

<p> 表示一个段落,会自动换行并与其他段落产生间距

html 复制代码
<body>
    <h1>我是标题1</h1>
    <p>这里可以写一个段落的文字信息</p>
</body>

14.2.3 超链接标签

用 <a> 实现页面跳转,核心属性是 href(目标网址)

html 复制代码
<body>
    <h1>我是标题1</h1>
    <p>这里可以写一个段落的文字信息</p>
    <a href="https://www.ptpress.com.cn/periodical">链接到人民邮电出版社</a>
</body>

14.2.4 注释标签

html 复制代码
<body>
    <h1>我是标题1</h1>
    <!-- 下面的<p>标签被注释了 -->
    <p>这里可以写一个段落的文字信息</p>
    <!-- -->
    <h2>我是标题1</h2>
</body>

14.2.5 标签属性

标签除了名称和内容,还可以附加属性来增强功能

• 常用属性:

◦ class:为元素定义类名(可多个)

◦ id:定义元素的唯一 ID(全局唯一)

◦ style:定义行内样式

◦ title:鼠标悬停时显示的提示文本

html 复制代码
<body>
    <h1>我是标题1</h1>
    <p>这里可以写一个段落的文字信息</p>
    <h3 id="python" title="我是提示信息" style="color: #799961;">Python办公自动化</h3>
</body>

14.3 设置字体格式

14.3.1 设置字体的字形与效果

|---------|-----|
| 标签 | 效果 |
| <b> | 加粗 |
| <i> | 斜体 |
| <sup> | 上标 |
| <sub> | 下标 |
| <u> | 下划线 |

html 复制代码
<body>
    <h1><i>我是</i><sup>标</sup><sub>题</sub>1</h1>
    <p>这里可以写一个<b>段落</b>的<u>文字信息</u></p>
</body>

14.3.2 设置字体颜色

通过 style 属性设置,支持 3 种颜色值:

  1. 十六进制:#FF0000(红色)

  2. RGB 值:rgb(255,0,0)(红色)

  3. 颜色名:blue(蓝色)

• 还可以设置背景颜色:background: LightSeaGreen

html 复制代码
<body>
    <h1 style="color:rgb(168,168,168)">我是标题1</h1>
    <p style="color:#FF0000">这里写一个段落的文字信息</p>
    <p style="color:blue">我是第二段内容</p>
    <h2 style="background: LightSeaGreen; color:blue">我是标题2</h2>
</body>

14.3.3 设置字体大小

通过 style 属性的 font-size 设置,单位可以是 pt (点)、cm (厘米)、in(英寸)、mm (毫米)等

html 复制代码
<body>
    <h1 style="font-size:38pt">我是标题1</h1>
    <p style="font-size:1cm">我们一起学习Python办公自动化</p>
</body>

14.4 添加多媒体

14.4.1 添加网页图片

使用 <img> 标签(单标签),核心属性:

  • src:图片的 URL(必填)
  • alt:图片加载失败时的提示文字
  • width/height:图片宽高(单位 px,只填一个会按比例缩放)
html 复制代码
<body>
    <h1>我是标题1</h1>
    <img src="https://cdn.ptpress.cn/uploadimg/Material/978-7-115-41773-2/72jpg/41773_300.jpg" 
         alt="图片丢失了" width="200px">
</body>

14.4.2 添加网页音频

使用 <audio>标签,核心属性:

  • src:音频文件 URL
  • controls:显示播放控件(暂停、播放、音量等)
  • type:音频类型(如 audio/mpeg 对应 .mp3
html 复制代码
<body>
    <h1>我是标题1</h1>
    <audio controls="controls" src="音乐.mp3">音乐丢失了
</body>

14.4.3 添加网页视频

使用 <video> 标签,核心属性:

src:视频文件 URL

controls:显示播放控件

width/height:视频宽高

autoplay:自动播放

loop:循环播放

muted:默认静音

html 复制代码
<body>
    <h1>播放视频啦</h1>
    <video src="https://视频网址.mp4" controls="controls" width="500"></video>
</body>
相关推荐
Quz1 小时前
QML与JavaScript 交互的四种方式
javascript·qt·交互
加农炮手Jinx1 小时前
Flutter for OpenHarmony 实战:疯狂头像 App(三)— 复合动画与交互反馈 — 让 UI 跃动起来
flutter·ui·交互·harmonyos·鸿蒙
会周易的程序员1 小时前
cNetgate插件架构设计详解 动态库 脚本二开lua, python, javascript
javascript·c++·python·物联网·lua·iot
王码码20351 小时前
lutter for OpenHarmony 实战之基础组件:第六十二篇 SystemChannels — 探秘 Flutter 与系统交互的捷径
flutter·microsoft·交互·harmonyos
普通网友1 小时前
C++与Rust交互编程
开发语言·c++·算法
游乐码1 小时前
c#静态类和静态构造函数
开发语言·c#
小雨中_2 小时前
3.7 GSPO:Group Sequence Policy Optimization(组序列策略优化)
人工智能·python·深度学习·机器学习·自然语言处理
散峰而望2 小时前
【算法竞赛】堆和 priority_queue
开发语言·数据结构·c++·算法·贪心算法·动态规划·推荐算法
javaIsGood_3 小时前
Java基础面试题
java·开发语言