如何在Python中调用系统命令或执行外部程序?详细教程来了!

基本原理

在Python中执行程序或调用系统命令是一项非常实用的技能,这允许Python脚本与操作系统进行交互,执行各种外部程序。Python提供了多种方法来实现这一功能,包括os.system(), subprocess模块等。

示例代码
示例1:使用os.system()
import os

# 执行ls命令列出当前目录下的文件
result = os.system('ls')
print("命令执行完毕,返回值为:", result)

运行结果:执行后会显示当前目录下的文件和文件夹列表,返回值通常是命令的退出状态码。

示例2:使用subprocess.run()
import subprocess

# 使用subprocess执行ls命令,并捕获输出
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE, text=True)

# 打印输出结果
print(result.stdout)

运行结果:执行后会显示当前目录下的文件和文件夹的详细信息,包括权限、大小和修改日期。

示例3:使用subprocess.Popen()
import subprocess

# 使用Popen执行一个长时间运行的命令,并实时获取输出
process = subprocess.Popen(['ping', 'google.com', '-c', '4'], stdout=subprocess.PIPE, text=True, errors='ignore')

# 实时打印输出
for line in iter(process.stdout.readline, ''):
    print(line, end='')

# 等待命令执行完毕
process.stdout.close()

运行结果:执行后会实时显示ping命令的结果,直到完成4次ping操作。

注意事项
  1. 安全性:当使用os.system()subprocess执行外部命令时,需要注意安全问题,避免执行不受信任的命令。
  2. 输出处理subprocess模块提供了更灵活的输出处理方式,可以捕获标准输出和错误输出。
  3. 异常处理:在使用这些命令时,应该考虑到异常处理,比如命令执行失败时的处理。
  4. 环境依赖:某些命令可能依赖特定的系统环境或路径,确保在目标环境中这些命令是可用的。
扩展知识点
  • 信号和进程控制:了解如何在Python中发送信号给进程,以及如何控制进程的执行。
  • 环境变量:学习如何在执行系统命令时传递环境变量。
  • Shell命令与系统调用:理解Shell命令与系统调用的区别,以及在Python中如何使用它们。
结语

通过上述内容,我们学习了如何在Python中执行程序或调用系统命令,掌握了os.system()subprocess模块的基本用法。这为我们编写能够与操作系统交互的Python脚本打下了基础。随着对Python和系统命令的更深入理解,我们可以构建更加强大和灵活的应用程序。


【痕迹】QQ+微信朋友圈和聊天记录分析工具1.0.4 (1)纯Python语言实现,使用Flask后端,本地分析,不上传个人数据。

(2)内含QQ、微信聊天记录保存到本地的方法,真正实现自己数据自己管理。

(3)数据可视化分析QQ、微信聊天记录,提取某一天的聊天记录与大模型对话。

下载地址:https://www.lanzoub.com/b00rn0g47e 密码:9hww

### 如何在 TouchDesigner 中实现语音互动的绘画功能 要在 TouchDesigner 中实现语音互动的实时绘图功能,可以按照以下方式构建系统架构并利用相关工具和技术。 #### 架构概述 TouchDesigner 是一种强大的视觉编程环境,支持多种输入源和交互形式。为了实现语音控制下的实时绘图功能,需要集成语音识别模块并将解析后的数据映射到绘图操作上。具体来说,可以通过 Python 脚本调用外部 API 库来完成语音转文字的任务,并将结果传递给 CHOPs 和 SOPs 进行处理[^1]。 #### 主要组件及其作用 - **Voice Recognition**: 使用 Google Speech-to-Text API 其他开源项目(如 PocketSphinx),捕获用户的语音命令并将其转换成可读的文字字符串。 - **Data Processing**: 将上述获得的文本进一步分析提取关键词者指令参数,比如颜色、线条粗细等属性设置。 - **Drawing Logic Implementation within TD**: 利用 DAT 表格节点存储这些动态变化的数据项;再借助 Geometry COMP 创建几何对象表示画笔路径轨迹效果。 以下是具体的实施步骤: #### 配置 Voice Input System via Python Scripting in TouchDesigner 首先,在网络面板(Network Panel)里新建一个 Text TOP 来显示最终输出的结果作为反馈界面。然后添加 Execute DAT 并编写如下所示代码片段用于初始化连接至云端服务端点以及定义回调函数接收返回值更新全局变量供后续环节访问使用: ```python import td from google.cloud import speech_v1p1beta1 as speech def setup(): client = speech.SpeechClient() def recognize_speech(audio_file_path): with open(audio_file_path, 'rb') as audio_file: content = audio_file.read() audio = speech.RecognitionAudio(content=content) config = speech.RecognitionConfig( encoding=speech.RecognitionConfig.AudioEncoding.LINEAR16, sample_rate_hertz=16000, language_code="en-US", ) response = client.recognize(config=config, audio=audio) for result in response.results: global recognized_text recognized_text = result.alternatives[0].transcript ``` 注意这里仅提供了一个简单的例子演示如何启动录音过程并通过 RESTful 接口发送请求获取响应消息体中的主要字段值赋给 `recognized_text` 变量以便于之后的操作逻辑判断依据之用。实际应用当中可能还需要考虑更多的细节问题诸如错误异常捕捉机制等等因素影响程序稳定性表现情况等方面的内容[^2]. 接下来就是关于怎样把得到的声音描述转化为对应的图形绘制动作部分了... #### Mapping Recognized Commands To Drawing Actions In SOP Networks 假设我们已经成功得到了一段包含特定含义表达式的话语串儿比如说:"draw red circle at position (50%,75%)"那么现在就需要想办法把这些抽象的概念具象化成为实实在在存在于三维空间当中的实体物件啦!为此我们可以采用这样的策略思路来进行转化处理: 创建一个新的 Table DAT 对象用来保存每次执行完一次完整的语义解析流程后所产生的关键信息记录条目;每一列分别代表不同的维度方向坐标轴位置百分比例数值者是其它自定义样式特征标签之类的附加说明备注之类的东西. 随后就可以运用 Matrix Transform SOP 结合 Point SOP 等基础构件单元共同协作搭建起整个可视化的呈现框架结构体系来了...当然这中间肯定少不了各种各样的条件分支判定语句块儿来确保能够准确无误地匹配对应关系达成预期目标效果哦😊 最后别忘了记得定期刷新视图窗口让最新的改动成果及时展现出来供大家欣赏品鉴呢😏 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值