Python 2.x 中如何使用subprocess模块执行外部命令

2023年 8月 8日 60.5k 0

Python的subprocess模块提供了一种在Python程序中执行外部命令的方式。它允许我们与操作系统的命令行交互,并通过代码来控制和引用外部程序的输出和行为。本文将介绍如何使用subprocess模块执行外部命令,并提供一些实用的代码示例。

  • 执行简单的外部命令
  • 要执行简单的外部命令,可以使用subprocess模块的subprocess.call()函数。这个函数在执行完外部命令后会返回命令的退出状态码。

    import subprocess

    # 执行一个简单的外部命令:获取当前目录下的文件列表
    subprocess.call('ls')

    登录后复制

  • 获取外部命令的输出
  • 如果想要获取外部命令的输出结果,可以使用subprocess.check_output()函数。这个函数会执行外部命令,并将其输出作为函数的返回值。

    import subprocess

    # 执行外部命令:获取当前目录下的文件列表
    output = subprocess.check_output('ls')
    print(output)

    登录后复制

  • 控制外部命令的输入和输出
  • 有时候,我们需要将输入数据传递给外部命令,或者从外部命令中获取实时的输出。subprocess模块提供了Popen类来满足这些需求。

    import subprocess

    # 执行外部命令:使用cat命令将输入数据输出到标准输出
    input_data = b'Hello, World!'
    process = subprocess.Popen(['cat'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
    output, error = process.communicate(input=input_data)
    print(output)

    登录后复制

  • 执行命令行参数包含空格的外部命令
  • 当外部命令的参数包含空格时,需要将整个命令作为一个字符串传递给subprocess.call()subprocess.check_output()函数。

    import subprocess

    # 执行外部命令:计算一个数的平方
    number = 10
    subprocess.call('python -c "print({}**2)"'.format(number), shell=True)

    登录后复制

  • 增加错误处理
  • 在执行外部命令时,可能会出现一些错误,比如命令不存在或命令执行失败。我们可以使用try-except语句来处理这些错误。

    import subprocess

    # 执行外部命令:命令不存在
    try:
    subprocess.check_output('nonexistent_command')
    except subprocess.CalledProcessError as e:
    print('Command execution failed:', e)

    登录后复制

    这些示例代码展示了如何使用subprocess模块执行外部命令。使用subprocess模块可以使我们能够轻松地与命令行交互,并灵活控制外部程序的行为。无论是简单的命令还是复杂的任务,subprocess模块都可以帮助我们实现。

    以上就是Python 2.x 中如何使用subprocess模块执行外部命令的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论