python执行linux系统命令的三种方式

举报
神的孩子在歌唱 发表于 2024/05/31 10:19:37 2024/05/31
【摘要】 前言这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。 作者:神的孩子都在歌唱1. 使用os.system无法获取命令执行后的返回信息import os​os.system('ls')2. 使用os.popen能够获取命令执行后的返回信息import os​data=os.popen('ls').readlines()print(data)3. 使用模块 subpr...

前言

这是我在这个网站整理的笔记,有错误的地方请指出,关注我,接下来还会持续更新。

作者:神的孩子都在歌唱


1. 使用os.system

无法获取命令执行后的返回信息

import os
​
os.system('ls')

image-20240131221444134

2. 使用os.popen

能够获取命令执行后的返回信息

import os
​
data=os.popen('ls').readlines()
print(data)

image-20240131221624726


3. 使用模块 subprocess

通过subprocess模块可以更灵活地执行命令,并获取执行后的返回信息。

import subprocess
​
# 使用Popen执行命令,并捕获标准输出
result = subprocess.Popen('ls', shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
​
# 读取并解码标准输出
output_bytes = result.stdout.read()
output_str = output_bytes.decode('utf-8')
​
# 输出结果
print(output_str)
​
# 或者逐行输出结果
for line in output_str.splitlines():
    print(line)
​

image-20240131222135088

参数解释:

  • shell=True:指示在shell中运行命令。

  • stdout=subprocess.PIPE:捕获命令的标准输出。

  • stderr=subprocess.STDOUT:将标准错误输出重定向到标准输出。

通过使用subprocess模块,可以更方便地处理命令执行的输出,并在需要时对其进行进一步处理。

作者:神的孩子都在歌唱

本人博客:https://blog.csdn.net/weixin_46654114

转载说明:务必注明来源,附带本人博客连接。


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。