如何在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/609809.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LLM生态下爬虫程序的现状与未来

最近出现一批与LLM有关的新的爬虫框架,一类是为LLM提供内容抓取解析的,比如 Jina Reader 和 FireCrawl ,可以将抓取的网页解析为markdown这样的对LLM友好的内容,例如markdown,这类本质上还是传统的爬虫解决方案。还有一…

[C++] const 成员函数

标题:[C] this指针 & const 成员函数 水墨不写bug 正文开始: 目录 (一)Cpp的面向对象编程 (二)this指针 (三)const修饰的成员函数 在正式讲解const修饰成员函数之前&#x…

在做题中学习(55):一维前缀和模板

【模板】前缀和_牛客题霸_牛客网 (nowcoder.com) 题目解释: 注意:下标从1开始的。 l 和 r就是对这n个整数去取一个区间,例如示例一: (1,2) 区间 就是算出1 2 4 中 1,2下标对应值的和,12 3 同理,(2,3) …

vscode正则匹配技巧

写正则表达式 下面是匹配加粗的单词或空格 \*\*[a-zA-Z\s]*\*\*vscode提取加粗的内容 altenter,再ctrlC复制选中的内容出来

前端 | iframe框架标签应用(三)| 点击指定部分,进行外部页面搜索,内置iframe返回搜索结果

文章目录 📚实现效果📚模块实现解析 📚实现效果 点击单词列表内的任意单词↓ 弹出对应单词的搜狗翻译搜索结果,点击关闭按钮关闭界面。 📚模块实现解析 在列表框搜索功能的基础上加一个click触发效果就好了&#xf…

网络安全在数字时代的重要性:以近期网络安全事件为镜

在当今这个信息化爆炸的时代,互联网如同一张无形的网,将我们的生活、工作、学习紧密相连。然而,这张网在带来便捷的同时,也暗藏着无数的安全隐患。近年来,网络安全事件频发,从个人隐私泄露到企业数据被盗&a…

网站未部署证书有何影响,如何解决?

如果您的网站没有ssl证书会有以下风险 1 浏览器标记为不安全 未安装证书的网站在访问时会有不安全的提示弹窗或者在网址栏直接显示不安全 2 影响企业信誉 当用户访问网站时看到不安全提示,会对网站的真实性和安全性产生怀疑,不敢轻易与该企业合作&…

【NodeMCU实时天气时钟温湿度项目 2】WIFI模式设置及连接

第一专题内容,请参考 【NodeMCU实时天气时钟温湿度项目 1】连接点亮SPI-TFT屏幕和UI布局设计-CSDN博客 第三专题内容,请参考 【NodeMCU实时天气时钟温湿度项目 3】连接SHT30传感器,获取并显示当前环境温湿度数据&#…

初探 JUC 并发编程:独占锁 ReentrantLock 底层源码解析

本篇是关于 JUC 并发包中独占锁 ReentrantLock 底层源码的解析,在阅读之前需要对 AQS 抽象队列有基本的了解。 文章目录 1.1 类图结构1.2 获取锁1)void lock() 方法2)void lockInterruptibly() 方法3)boolean tryLock() 方法4&am…

(✌)粤嵌—2024/5/10—删除链表的倒数第 N 个结点

代码实现: /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/ struct ListNode* removeNthFromEnd(struct ListNode *head, int n) {if (head NULL || n 0) {return head;}int i n;struct ListNode …

MySQL·复合查询

目录 基本查询回顾 案例1:查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J 案例2:按照部门号升序而雇员的工资降序排序 案例3:使用年薪进行降序排序 案例4:显示工资最高的员工的名字…

TPI 系列——1W,3KVDC隔离 定电压输入,稳压双路输出DC-DC模块电源

TPI系列产品是专门针对PCB上需要与输入电源隔离的电源应用场合而设计的。该产品适用于:1)输入电源的电压变化≤5%;2)输入输出之间要求隔离电压≥3000VDC;3)对输出电压稳定和输出纹波噪声要求高.

多商户Docker Supervisor进程管理器部署

Dockerfile 根目录下没有Dockerfile的可以复制下面的命令 # 使用基础镜像 FROM leekay0218/crmeb-mer## 复制代码 ## 在本地调试注释掉,使用映射把文件映射进去 #ADD ./ /var/www# 设置工作目录 WORKDIR /var/www# 设置时区为上海 ENV TZAsia/Shanghai RUN ln -sn…

Porto主题下载: 打造您网站的独特魅力

在数字时代,一个吸引人的网站是您品牌故事的开端。Porto,一款专为追求卓越设计和功能性的WordPress主题,让您的网站从众多竞争者中脱颖而出。 响应式设计 Porto主题采用最先进的响应式设计技术,确保您的网站在任何设备上都能提供…

Hive两代命令行客户端(Hive、Beeline)

Hive命令行客户端 Hive有两个主要的客户端工具,分别是旧版的Hive CLI(Command Line Interface)和新版的Beeline。 1. Hive CLI: Hive CLI 是 Hive 最早期的命令行客户端工具,它使用 JDBC 连接到 Hive 服务器&#xff…

[嵌入式系统-72]:ARM芯片选型基础

目录 一、ARM概述 1.1 ARM介绍 1.2 ARM芯片的特点 1.3 ARM芯片的商业模式 1.4 ARM的发展历史 二、ARM架构 2.1 ARM SOC芯片的架构 2.2 ARM核的架构 三、ARM核的架构演进 3.1 经典ARM处理器ARMx 3.2 嵌入式ARM处理器Cortex-Mx系列:微控制器 3.3 嵌入式AR…

AI图书推荐:重塑—利用生成式AI构建产品

你知道吗,将人工智能融入产品已经成为全球企业的关键战略?埃森哲 (Accenture) 2023 年的一项研究显示,高达 75%的高管认为,如果在未来五年内未能有效整合人工智能,企业可能会被淘汰。 《重塑:利用生成式人工…

魔法程序员的奥妙指南:Java基本语法

作为一名魔法程序员,精通Java语言是至关重要的。Java作为一种强大的编程语言,在编写优质代码和开发强大应用程序时发挥着重要作用。让我们深入探讨Java基本语法的关键要点,从注释到变量,无所不包! Java基本语法的神秘魔…

可重入分布式锁有哪些应用场景

原文连接:可重入分布式锁有哪些应用场景 https://mp.weixin.qq.com/s/MTPS9V8jn5J91wr-UD4DyA 之前发过的一篇实现Redis分布式锁的8大坑中,有粉丝留言说,分布式锁的可重入特性在工作中有哪些应用场景,那么我们这篇文章就来看一下…

IP定位技术在打击网络犯罪中的作用

随着互联网的普及和信息技术的发展,网络犯罪日益猖獗,给社会治安和个人财产安全带来了严重威胁。而IP定位技术的应用为打击网络犯罪提供了一种有效手段。IP数据云将探讨IP定位技术在打击网络犯罪中的作用及其意义。 1. IP定位技术的原理 IP&#xff08…
最新文章