Python Subprocess介绍:基础和示例

深入理解python中的subprocess模块 在实际开发过程中,我们经常会遇到需要从Python脚本中调用外部程序或脚本的场景。这时候,Python的subprocess模块就显得尤为重要。它是Python用来生成子进程、连接到它们的输入/输出/错误管道,以及获取它们的返回码的一个模块。本文将带你深入了解subprocess模块,学会如何高效地使用它来扩展你的Python脚本功能。subprocess模块是Python标准库的一部分,它为创建和管理子进程提供了强大的接口。在Python 2.4中引入以取代旧的模块(如os.system和。 阅读详情

Python Subprocess介绍:基础和示例

探索Python Subprocess模块的逐步指南,包括示例。

目录


什么是 Python Subprocess

Python Subprocess模块是一种工具,允许您从Python代码中运行其他程序或命令。它可以用于启动新程序、向它们发送数据并获取结果。

它就像是使用Python而不是直接在命令提示符中键入命令来向计算机发出命令。该模块使得自动化任务和将其他程序与Python代码集成变得容易。

例如,您可以使用Python Subprocess模块在Python代码中运行shell命令(如“ls”或“ping”),并获取该命令的输出。您还可以使用它来运行其他Python脚本或在Windows上运行.exe文件。

此外,Python Subprocess模块可以重定向进程的输入和输出,这意味着您可以控制发送到进程的数据以及从中接收的数据。

Python Subprocess模块最有用的功能之一是它允许用户从Python代码内部处理子进程生成的输入、输出甚至错误。这一功能被认为是该模块最强大的方面之一。由于这一功能,现在可以使调用子进程的过程更加强大和多功能。例如,现在可以在Python脚本的其余部分中使用子进程的输出作为变量。

在本教程中,我们将学习如何使用Python Subprocess模块在Python代码中运行其他程序,如何向它们发送数据以及如何获取结果。无论您是初学者还是经验丰富的Python开发人员,本教程都将为您提供在项目中有效使用Python Subprocess模块所需的知识。


何时使用 Python Subprocess

自动化系统任务

Python Subprocess模块可用于自动化各种系统任务,例如运行备份、启动和停止服务以及计划cron作业。例如,您可以使用Python Subprocess模块运行“cp”命令以创建文件的备份,或者使用“service”命令在Linux系统上启动和停止服务。

您还可以使用Python Subprocess模块使用cron或其他调度工具安排在特定时间间隔运行任务。

运行命令行工具

Python Subprocess模块可用于运行命令行工具,如grep、sed和awk,并在Python代码中处理其输出。例如,您可以使用Python Subprocess模块运行“grep”命令以在文件中搜索特定模式,然后在Python代码中处理输出。这对于日志分析、数据处理和文本操作等任务非常有用。

运行外部可执行文件

Python Subprocess模块可以运行其他可执行文件,如Windows上的.exe文件,并控制其行为。例如,您可以使用Python Subprocess模块运行执行特定任务的可执行文件,然后在自己的代码中使用该可执行文件的输出。这对于图像处理、数据分析和机器学习任务非常有用。

作为后台进程运行脚本

您可以使用Python Subprocess模块将脚本作为后台进程运行,以便它们在主程序退出后继续运行。例如,您可以使用Python Subprocess模块运行执行特定任务的脚本,并在主程序退出而不等待脚本完成。这对于监控、日志记录和数据收集非常有用。

使用非Python解释器运行脚本

Python Subprocess模块可以帮助您运行其他语言(如Perl、Ruby和Bash)编写的脚本。例如,您可以使用Python Subprocess模块运行执行特定任务的Perl脚本,然后在自己的代码中使用该脚本的输出。这对于数据处理、文本操作和系统管理非常有用。

并行处理

Python Subprocess模块可用于并行运行多个进程,这对于图像处理、数据分析和机器学习等任务非常有用。例如,您可以使用Python Subprocess模块运行多个相同脚本的实例,每个实例处理数据的不同部分,然后合并结果。


Python Subprocess示例

使用 subprocess.run

subprocess.run()方法是运行子进程并等待其完成的便捷方式。它允许您选择要运行的命令并添加选项,如参数、环境变量和输入/输出重定向。一旦启动子进程,run()方法会阻塞,直到子进程完成,并返回一个CompletedProcess对象,其中包含子进程的返回码和输出。

subprocess.run()方法接受多个参数,其中一些是:

  • args:要运行的命令及其参数,以字符串列表形式传递。
  • capture_output:当设置为True时,将捕获标准输出和标准错误。
  • text:当设置为True时,将以字符串形式返回stdout和stderr,否则返回字节形式。
  • check:一个布尔值,指示是否检查子进程的返回码。如果check为True且返回码为非零,则引发CalledProcessError异常。
  • timeout:以秒为单位指定子进程完成前等待的时间。
  • shell:一个布尔值,指示是否在shell中运行命令。这意味着命令将作为字符串传递,并且可以使用shell特定的功能,如通配符扩展和变量替换。

subprocess.run()方法还返回一个CompletedProcess对象,其中包含以下属性:

  • args:运行的命令和参数。
  • returncode:子进程的返回码。
  • stdout:子进程的标准输出,以字节对象形式。
  • stderr:子进程的标准错误,以字节对象形式。

示例 1:运行shell命令

import subprocess

result = subprocess.run(["dir"], shell=True, capture_output=True, text=True)

print(result.stdout)

输出:

Volume in drive C has no label.

Volume Serial Number is E414-A41C

 Directory of C:\Users\owner

01/25/2023  10:56 AM    <DIR>          .

01/25/2023  10:56 AM    <DIR>          ..

07/19/2021  01:19 PM    <DIR>          .anaconda

07/19/2021  01:19 PM    <DIR>          .astropy

07/19/2021  01:19 PM    <DIR>          .aws

09/12/2022  08:48 AM               496 .bash_history

03/27/2022  03:08 PM    <DIR>          .cache

09/26/2021  06:58 AM    <DIR>          .conda

09/26/2021  06:59 AM                25 .condarc
...

示例 2:运行Python脚本

您还可以使用subprocess.run()方法运行Python脚本。首先,创建一个简单的Python脚本保存为.py文件:

print("This is the output from subprocess module")

现在,可以使用subprocess模块来运行这个脚本:

import subprocess

result = subprocess.run(["python", "my_python_file.py"], capture_output=True, text=True)

print(result.stdout)

输出:

This is the output from subprocess module

示例 3:直接从函数中运行Python代码

对于简单的用例,您可以直接将Python命令传递给subprocess.run()函数。例如:

result = subprocess.run(["C:/Users/owner/anaconda3/python", "-c", "print('This is directly from a subprocess.run() function')"], capture_output=True, text=True)

print(result.stdout)

输出:

This is directly from a subprocess.run() function

在参数列表中,第一个元素C:/Users/owner/anaconda3/python是可执行Python的路径(您的路径可能不同)。第二个元素-c是一个Python标记,允许用户将Python代码以文本形式传递给命令行。第三个元素print(...)是Python命令本身。

示例 4:使用check参数

check参数是Python subprocess模块中subprocess.run()函数的一个可选参数。它是一个布尔值,控制是否应检查正在运行的命令的返回码。

当check设置为True时,函数将检查命令的返回码,如果返回码为非零,则引发CalledProcessError异常。异常将具有返回码、stdout、stderr和命令作为属性。

当check设置为False(默认值)时,函数不会检查返回码,即使命令失败也不会引发异常。

示例:使用check参数

import subprocess

result = subprocess.run(["python", "file_donot_exist.py"], capture_output=True, text=True, check=True)

print(result.stdout)

print(result.stderr)

输出:

---------------------------------------------------------------------------

CalledProcessError                        Traceback (most recent call last)

<ipython-input-81-503b60184db8> in <module>

      1 import subprocess

----> 2 result = subprocess.run(["python", "file_donot_exist.py"], capture_output=True, text=True, check=True)

      3 print(result.stdout)

      4 print(result.stderr)

~\anaconda3\lib\subprocess.py in run(input, capture_output, timeout, check, *popenargs, **kwargs)

    514         retcode = process.poll()

    515         if check and retcode:

--> 516             raise CalledProcessError(retcode, process.args,

    517                                      output=stdout, stderr=stderr)

    518     return CompletedProcess(process.args, retcode, stdout, stderr)

CalledProcessError: Command '['python', 'file_donot_exist.py']' returned non-zero exit status 2.

请注意,命令失败是因为file_donot_exist.py不存在。与设置check=True不同,您的进程不会失败;相反,您将在stdout中获取错误消息。


使用 subprocess.Popen

subprocess.Popen是运行子进程的较低级接口,而subprocess.run是Popen的高级封装,旨在更方便使用。

Popen允许您启动一个新的进程并与其标准输入、输出和错误流进行交互。它返回一个对正在运行的进程的句柄,可以用于等待进程完成、检查其返回码或

终止它。

run是一个更方便的函数,允许您运行一个命令并在单个调用中捕获其输出,而无需创建Popen对象并自己管理流。它还允许您指定运行命令的各种选项,例如是否在命令失败时引发异常。

一般来说,如果您只需要运行命令并捕获其输出,那么应使用run;如果您需要更多对进程的控制,如与其输入和输出流交互,则应使用Popen。

Popen类接受与run()相同的参数,包括指定要运行的命令的args和其他可选参数,如stdin、stdout、stderr、shell、cwd和env。

Popen类有几种方法,允许您与进程进行交互,例如communicate()、poll()、wait()、terminate()和kill()。

示例:使用 subprocess.Popen

import subprocess

p = subprocess.Popen(["python", "--help"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True)

output, errors = p.communicate()

print(output)

输出:

usage: python [option] ... [-c cmd | -m mod | file | -] [arg] ...

Options and arguments (and corresponding environment variables):

-b     : issue warnings about str(bytes_instance), str(bytearray_instance)

         and comparing bytes/bytearray with str. (-bb: issue errors)

-B     : don't write .pyc files on import; also PYTHONDONTWRITEBYTECODE=x

-c cmd : program passed in as string (terminates option list)

-d     : debug output from parser; also PYTHONDEBUG=x

-E     : ignore PYTHON* environment variables (such as PYTHONPATH)
...

这将运行命令python –help并创建一个新的Popen对象,将其存储在变量p中。使用communicate()方法捕获命令的标准输出和错误,并将其分别存储在变量output和errors中。

subprocess.Popen在您想要更多地控制进程时非常有用,比如向它发送输入、从中接收输出或等待其完成。


使用 subprocess.call

subprocess.call()是Python subprocess模块中的一个函数,用于在单独的进程中运行命令并等待其完成。它返回命令的返回码,如果命令成功,则返回码为零,否则为非零。

call()函数接受与run()相同的参数,包括指定要运行的命令的args和其他可选参数,如stdin、stdout、stderr、shell、cwd和env。

命令的标准输出和错误将发送到与父进程相同的stdout和stderr,除非使用stdout和stderr参数重定向它们。

示例:使用 subprocess.call

import subprocess

return_code = subprocess.call(["python", "--version"])

if return_code == 0:
    print("Command executed successfully.")
else:
    print("Command failed with return code", return_code)

输出:

Command executed successfully.

这将在单独的进程中运行命令python –version并等待其完成。命令的返回码将存储在return_code变量中,如果命令成功,则为零,否则为非零。

subprocess.call()在您想要运行命令并检查返回码,但不需要捕获输出时非常有用。


使用 subprocess.check_output

check_output是subprocess模块中的一个函数,类似于run(),但它仅返回命令的标准输出,并且如果返回码为非零,则引发CalledProcessError异常。

check_output函数接受与run()相同的参数,包括指定要运行的命令的args和其他可选参数,如stdin、stderr、shell、cwd和env。

check_output函数将命令的标准输出作为字节对象或字符串返回,如果传递了text=True,则返回字符串。

示例:使用 subprocess.check_output

import subprocess

try:
    output = subprocess.check_output(["python", "--version"], text=True)
    print(output)
except subprocess.CalledProcessError as e:
    print(f"Command failed with return code {e.returncode}")

输出:

Python 3.8.8

check_output函数将命令python --version的标准输出返回为字符串,并在命令失败时引发异常。


Python Subprocess管道

Python subprocess模块提供了创建和与子进程交互的方式,可用于运行其他程序或命令。subprocess模块的一个特性是能够创建管道,允许父进程与子进程之间进行通信。

管道是一种单向通信通道,将一个进程的标准输出连接到另一个进程的标准输入。管道可以使用subprocess模块

中的Popen对象来创建。在创建管道时,您可以指定输入和输出的处理方式。

以下是一个示例,演示如何在Python中创建和使用管道:

import subprocess

# 创建一个子进程,它的标准输出将成为管道的输入
process1 = subprocess.Popen(["echo", "Hello, World!"], stdout=subprocess.PIPE, text=True)

# 创建另一个子进程,它的标准输入将连接到管道的输出
process2 = subprocess.Popen(["grep", "Hello"], stdin=process1.stdout, stdout=subprocess.PIPE, text=True)

# 读取process2的标准输出
output = process2.communicate()[0]

# 打印结果
print(output)

在这个示例中,首先创建一个子进程process1,它执行echo "Hello, World!"命令,并将标准输出连接到管道。然后,创建另一个子进程process2,它执行grep "Hello"命令,并将标准输入连接到管道的输出。最后,使用communicate()方法读取process2的标准输出并打印结果。

通过使用管道,您可以将多个子进程链接在一起,以实现更复杂的数据处理和流程控制。


结论

Python Subprocess模块是Python标准库中的一个有用工具,允许您在Python代码中运行其他程序或命令,以及与它们进行交互。它在自动化系统任务、运行命令行工具、运行外部可执行文件、作为后台进程运行脚本、使用非Python解释器运行脚本和并行处理等方面非常有用。

在本教程中,我们介绍了如何使用Python Subprocess模块的不同函数和方法来运行命令、捕获输出以及与子进程进行交互。无论您是初学者还是有经验的Python开发人员,掌握Python Subprocess模块将增加您的工作效率并扩展您的应用程序的功能。

如果您有任何疑问或需要更多帮助,可以参考Python官方文档中的Subprocess模块部分,以获得更多详细信息。


Python Subprocess常见问题

在使用Python Subprocess模块时,可能会遇到一些常见问题。以下是一些常见问题的解决方法:

问题 1:为什么我的子进程没有启动?

如果您的子进程没有启动,可能有几个原因。首先,请确保您提供了正确的命令和参数。还要检查是否设置了正确的工作目录(cwd)和环境变量(env)。如果您在Windows上运行命令,还要确保shell参数设置为True,以便在shell中执行命令。

问题 2:如何捕获子进程的标准错误?

要捕获子进程的标准错误,可以在创建子进程时将stderr=subprocess.PIPE传递给Popen构造函数。然后,您可以使用communicate()方法获取标准错误的输出。例如:

import subprocess

process = subprocess.Popen(["my_command"], stderr=subprocess.PIPE, text=True)
output, errors = process.communicate()

问题 3:如何处理非零的返回码?

如果子进程返回了非零的返回码,您可以通过检查returncode属性来判断命令是否成功。如果命令失败,您可以进一步处理错误或采取适当的措施。例如:

import subprocess

process = subprocess.run(["my_command"])
if process.returncode != 0:
    print("Command failed with return code", process.returncode)

这些是一些常见问题的解决方法,但在使用Python Subprocess模块时可能会遇到其他问题。在遇到问题时,建议查看Python官方文档以获取更多信息,并尝试不同的参数和选项来调试和解决问题。

Python之subprocess模块 subprocess模块是Python中用于启动和管理子进程的一个强大工具,替代了旧有的os.system和os.spawn系列函数。通过这个模块,您可以从Python脚本中执行系统命令和其他可执行程序,并与之进行交互。在Python的subprocess模块中,有一些旧的API函数,比如call()、check_call()和check_output()。这些函数在Python 3.5及更早版本中被广泛使用。 阅读详情

相关推荐

Python 中 subprocess模块的使用

文章目录前言1、subprocess模块简介一、subprocess模块的遍历函数1、call函数(1)参数命令为数组时(2)参数命令为字符串时2、check_call函数3、check_output函数 前言 subprocess在jupyter notebook中被调用时与在python 中调用会有一些不一样的地方。 1、subprocess模块简介 subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。 这个模块用来创建和管理子进程。它提供了高层次.

刘石头的博客 7643

【Python】python之subprocess模块详解

【Python】python之subprocess模块详解 subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: os.system os.spawn* 1. subprocess模块中的常用函数 函数 描述 subprocess.run() Python 3.5中新增的函数。执行指定的命令,等待命令执行

qq_43331089的博客 7万+

Python subprocess模块实战:从基础调用到高级管道交互

本文深入探讨Python subprocess模块,从基础的`subprocess.run()`调用到高级的管道交互与进程控制。通过实战案例详细讲解如何安全执行系统命令、捕获输出、处理错误、实现超时控制,并解析Popen底层API进行实时交互与多进程协作。文章还涵盖跨平台兼容性、性能优化及安全注意事项,是掌握Python系统调用与自动化的全面指南。

weixin_29046035的博客 102

Python标准库 subprocess 模块多进程编程详解

本文主要介绍python 标准库 subprocess 模块创建子进程的各种用法 (1) 用 subprocess.run() 方法创建子进程 , (2) stdin, stdout,stderr 的配置,以及管道 Pipe 使用 (3) Popen API使用, 如何创建Popen对象,如何查询进程状态,中止进程 (4)进程之间通信, 使用stdin 传入数据,通过comunicate() 方法获取输出 (5) ascynio 异步执行子进程

Python技术探索 1万+

Python subprocess模块详解:从基础调用到高级进程管理

在Python编程中,进程管理是连接脚本与操作系统底层功能的关键技术。其核心原理在于通过创建子进程来执行外部命令或程序,实现跨语言、跨工具的协同工作。这一技术为自动化脚本、系统运维和DevOps流程提供了强大的扩展能力,使得Python能够作为“胶水语言”整合各类外部工具。在实际应用场景中,无论是执行Shell命令、调用编译后的二进制程序,还是构建复杂的任务流水线,都离不开对进程的精细控制。本文聚焦于Python标准库中的subprocess模块,深入解析其如何通过run()、Popen()等接口实现安全高

weixin_32288959的博客 188

0基础学Python系列【17】玩转Python的subprocess库:让你的代码动起来!

subprocess是Python与操作系统对话的桥梁,既能帮你完成简单的命令调用,也能玩转复杂的进程操作。灵活掌握它,能让你的Python脚本更加强大!🎉run():简单命令执行。:捕获输出。check=True:自动检查命令执行结果。shell=True:执行复杂命令(但要小心!Popen:高级进程操作,支持管道通信。timeout:避免程序卡死。env:传递自定义环境变量。编程的乐趣就在于折腾和探索!赶紧用subprocess去炫一波操作系统的骚操作吧!😎。

奔跑的蜗牛 126

深入Python subprocess模块:从基础到高级应用

本文深入解析Python subprocess模块,从基础的subprocess.run()函数讲起,涵盖参数详解、进程间通信、管道串联等高级应用。文章重点探讨了如何安全地执行系统命令、避免Shell注入攻击,并提供了实时日志监控等实战案例,帮助开发者编写健壮、高效的Python脚本,实现与外部程序的灵活交互。

weixin_29053577的博客 698

项目方案:社会视频资源整合接入汇聚系统解决方案(五)

视频监控接入和视频汇聚平台,形成整合平台,平台服务层包括编码设备、存储设备、解码设备等的接入服务,提供基础视频服务、传输服务、存储服务、控制服务及事件服务。两种不同的接入方式:监控设备接入,是指接入社会单位视频监控系统的DVR(数字硬盘录像机)、DVS和IPC、DVR/NVR、CVR等设备;平台对接,是指对接接入社会单位数字视频监控平台。AS-VAG视频监控接入网关支持onvif、国标等接入,也支持多种SDK接入方式,包括国产的主流品牌支持海康、大华、宇视、华为等SDK,国际品牌支持松下和axis等SDK。

weixin_70208651的博客 2464

Python subprocess模块实战:从基础到高级应用

本文深入解析Python subprocess模块,从基础函数对比到高级应用实战。详细介绍了推荐使用的run()函数及其核心参数,并通过常见场景与进阶Popen类演示了如何安全、高效地执行外部命令、处理输入输出、管理进程生命周期。文章特别强调了跨平台兼容性与防范Shell注入的安全实践,是掌握Python系统交互与自动化任务的实用指南。

sun99的博客 393

告别Keil手动分区!用CubeMX+VS Code一键生成带Bootloader的STM32 OTA工程

本文详细介绍了如何利用STM32CubeMX和VS Code实现STM32 OTA工程的自动化构建,告别传统Keil手动分区的繁琐流程。通过图形化配置Flash分区、自动生成链接脚本以及实现Bootloader跳转逻辑,开发者可以高效完成远程升级功能开发,显著提升嵌入式开发效率。

weixin_33720956的博客 389

BRepNet与图神经网络融合:提升3D CAD加工特征识别的精度与泛化能力

本文探讨了BRepNet与图神经网络(GNN)融合技术如何显著提升3D CAD加工特征识别的精度与泛化能力。通过将CAD模型视为图结构,利用GNN的消息传递机制增强对复杂拓扑关系的理解,并结合BRepNet的局部特征提取,该融合方法在MFCAD++数据集上实现了高达99.53%的准确率,有效解决了传统方法在处理复杂相交特征时的局限性,为智能制造提供了关键技术支撑。

android的专栏 776

Python基础篇【第6篇】: Python模块subprocess

Python中可以执行shell命令的相关模块和函数有:os.systemos.spawn*os.popen*          --废弃popen2.*           --废弃commands.*      --废弃,3.x中被移除import commands result = commands.getoutput('cmd') result = commands.getstatus(...

幽雨雨幽 948

我的二进制漏洞挖掘学习路线

漏洞挖掘也分好多方向:浏览器漏挖,虚拟化,iot,车联网,应用安全等。而且也要区分一下平台,Linux,Android,Windows,还有一些其他的系统。在基础知识拿捏以后,Windows下如OD,windbg,x64dbg。IDA,GDB要会并联调。然后需要了解一下漏洞的知识,漏洞利用的知识。可以从复现漏洞,CTF来学习,学习完之后就可以通过审计源码或者反汇编二进制程序来挖掘。然后就是练就行了,多关注一下最新安全消息,安全漏洞。

qq_36918532的博客 4944

Python subprocess模块实战:从基础命令执行到JSON解析与进程管理

在Python自动化脚本与系统集成开发中,进程间通信(IPC)是连接Python应用与操作系统底层能力的关键技术。其核心原理在于通过创建子进程、建立标准输入/输出/错误(stdin/stdout/stderr)管道,实现程序间的数据交换与控制。这一技术为Python脚本赋予了强大的系统级操作能力,使其能够无缝调用命令行工具、执行Shell脚本、管理服务进程,极大地扩展了Python在自动化运维、CI/CD流水线、数据处理等工程实践中的应用场景。本文聚焦于Python标准库中的subprocess模块,通过解

weixin_30751947的博客 305

使用lighttpd和开发板进行交互

本文介绍了如何在嵌入式开发板上使用Lighttpd Web服务器实现硬件交互功能。主要内容包括:Lighttpd通过CGI程序间接控制硬件的基本原理;lighttpd.conf配置文件的详细解析;开发板文件目录结构设计;用C语言编写控制GPIO的CGI程序示例;网页调用CGI实现按钮触发控制的HTML代码;常见问题调试建议。最后通过效果图展示了网页按钮点击后成功控制LED灯的实际效果,验证了Lighttpd+CGI方案在嵌入式设备Web控制中的可行性。

m0_49476241的博客 1424

新鲜出炉,ECCV2024.9.25 首次提出基于 YOLO 目标检测的无源域自适应

本文提出了首次使用YOLO系列单发探测器的SFDA方法。本文方法采用了一个带有学习的、目标领域特定的增强和一种新的通信机制的师生框架来稳定训练,减少了对模型选择中带注释的目标数据的依赖,这对现实世界的应用至关重要。SF-YOLO 优于所有基于Faster R-CNN的SFDA方法,甚至一些使用源数据的基于UDA yolo的方法。

m0_63294504的博客 2676

python3编程基础:多进程(四)subprocess模块

subprocess模块 使用subprocess这个模块来产生子进程,并连接到子进程的标准输入/输出/错误中去,还可以得到子进程的返回值。官方的解释: This module allows you to spawn processes, connect to their input/output/error pipes, and obtain their return codes. 即允许你...

每天进步一点点 6662

31、摩擦学中的材料选择

本博文深入探讨了摩擦学应用中材料选择的重要性,分析了材料的机械、物理和化学属性对摩擦学性能的影响。同时介绍了材料匹配原则、处理方法及表面涂层技术,以优化耐磨性和抗腐蚀性。通过实际案例和评估方法,为读者提供了系统化的材料选择流程和决策依据。

juice的博客 246

Python进阶教程:27_subprocess 模块 零基础超详细教程

Python的subprocess模块是一个内置标准库,用于在程序中调用外部命令、启动其他程序/脚本,并能控制输入输出、获取执行结果。它替代了老旧的os.system等工具,功能更强大。 核心功能包括:执行系统命令、调用第三方工具、运行其他脚本程序、自动化批量操作、获取命令输出等。推荐使用subprocess.run()函数,它能执行命令并返回执行结果。

zhanghaha1314的博客 374

AUTOSAR模式管理-EcuM多核处理及其他概念

因此,EcuM不请求状态。因此,BswM必须确保,例如,在调用EcuM_GoHalt或EcuM_GoPoll之前,必须将关机目标从其默认值更改为ECUM_STATE_SLEEP。对于ECU的关闭,BswM(位于主EcuM的同一个分区中)最终调用主核上的GoOff,该GoOff将请求分发给所有的从核。在ECU Manager模块的早期版本中,睡眠目标被特殊处理,因为在ECU中实现的睡眠模式取决于ECU的功能。在使用了外部的SBC控制相关的MCU的下电的时候,在OFF阶段最后调用SBC进入到Sleep的指令。

m0_49148264的博客 1341

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

Python subprocess模块详解:从基础调用到高级进程控制

在Python编程中,进程间通信与系统交互是常见的需求,它涉及操作系统层面的进程管理与数据交换。其核心原理是通过创建子进程、建立管道连接来实现父进程与外部程序的双向通信。这一技术对于自动化脚本、系统工具集成和跨语言调用具有重要价值,广泛应用于运维部署、数据处理流水线和微服务编排等场景。本文聚焦于Python的subprocess模块,深入解析其作为进程管理“瑞士军刀”的设计哲学与安全实践,涵盖run()函数、Popen类、管道缓冲机制及Shell注入防范等关键热词,帮助开发者实现安全高效的进程控制。

weixin_33404102的博客 12

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Python subprocess.run零基础入门:从安装到实战

注意Windows和Linux/macOS的命令差异,比如在Linux中要用['echo', 'Hello']这样的列表形式传参。例如用ping命令测试网络时,可以传入['ping', '-c', '4', 'example.com']这样的参数列表。关键点是:每个参数都要作为列表的独立元素,布尔类参数(如Windows的ping的'-t')也要单独列出。通过运行'python --version'命令并解析输出,不仅能验证学习成果,还是个实用的日常小脚本。建议先尝试自己实现,再对比标准解法。

SunstoneLion34的博客 381

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

popen函数_解决Python常见的问题:Subprocess的不同函数解析(零基础必看)

以前我一直用os.system()处理一些系统管理任务,因为我认为那是运行linux命令最简单的方式.我们能从Python官方文档里读到应该用subprocess 模块来运行系统命令.subprocess模块允许我们创建子进程,连接他们的输入/输出/错误管道,还有获得返回值。subprocess模块打算来替代几个过时的模块和函数。比如: os.system, os.spawn*, os.popen...

weixin_39651488的博客 530

【python学习】基础篇-常用模块-subprocess模块:创建和管理子进程

在这个示例中,我们首先导入了subprocess模块。然后分别使用了subprocess.run()、subprocess.Popen()、subprocess.call()、subprocess.check_output()和subprocess.check_call()方法来创建和管理子进程,并执行了一些命令。在Python中,可以使用subprocess模块来创建和管理子进程。

邑轻辰的学习笔记 298

Python调用subprocess执行chmod命令的完整指南:从基础调用到错误处理与安全实践

本文详细介绍了如何通过Python的subprocess模块安全高效地调用chmod命令,涵盖基础调用、错误处理与安全实践。从递归修改目录权限到防止命令注入,提供了完整的解决方案和性能优化建议,适用于Linux系统管理和文件权限控制的各类场景。

weixin_30652491的博客 260
上一篇: 轮转数组:解决数组元素向右轮转的高效算法
下一篇: 除自身以外数组的乘积:高效解法与技术
BugII_
博客等级 码龄8年 6770粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值