首页 > 后端开发 > Python教程 > 如何在 Python 中捕获 Shell 命令输出并将其作为字符串返回?

如何在 Python 中捕获 Shell 命令输出并将其作为字符串返回?

Mary-Kate Olsen
发布: 2025-01-04 02:09:10
原创
639 人浏览过

How Can I Capture and Return Shell Command Output as a String in Python?

将 Shell 命令输出捕获为字符串

问题:

捕获 shell 命令的输出并将其返回为一个字符串,无论是错误还是成功

Python 3.5 及更高版本(现代):

import subprocess

def run_command(cmd):
    result = subprocess.run(cmd, stdout=subprocess.PIPE, shell=True)
    return result.stdout.decode('utf-8')

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
登录后复制

Python 2.7 - 3.4(旧版):

import subprocess

def run_command(cmd):
    output = subprocess.check_output(cmd, shell=True)
    return output

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
登录后复制

Popen 对象(复杂应用程序和 Python 2.6 及以下):

import subprocess

def run_command(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
    output, error = p.communicate()
    return output

print(run_command('mysqladmin create test -uroot -pmysqladmin12'))
# Example Output:
# mysqladmin: CREATE DATABASE failed; error: 'Can't create database 'test'; database exists'
登录后复制

注意:

  • 代码可能需要修改以处理特定的 shell 环境或场景。
  • 直接运行shell命令会带来潜在的安全风险。建议使用更安全的运行方法或单独执行每个命令并手动管道输出。

以上是如何在 Python 中捕获 Shell 命令输出并将其作为字符串返回?的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板