首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何知道Python子进程Popen并行运行的开始时间/结束时间

Python的subprocess.Popen模块可以用于创建子进程并执行外部命令。要获取子进程并行运行的开始时间和结束时间,可以使用time模块来测量时间。

首先,导入subprocesstime模块:

代码语言:txt
复制
import subprocess
import time

然后,使用time.time()函数获取当前时间作为子进程的开始时间:

代码语言:txt
复制
start_time = time.time()

接下来,使用subprocess.Popen创建子进程并执行命令:

代码语言:txt
复制
process = subprocess.Popen(['command', 'arg1', 'arg2'])

在这里,将command替换为你要执行的命令,arg1arg2是命令的参数。

然后,可以使用process.wait()等待子进程完成运行:

代码语言:txt
复制
process.wait()

最后,使用time.time()函数获取子进程结束运行的时间:

代码语言:txt
复制
end_time = time.time()

通过计算开始时间和结束时间的差值,可以获得子进程并行运行的时间:

代码语言:txt
复制
running_time = end_time - start_time

至于腾讯云的相关产品和链接地址,可以参考以下建议:

  1. 腾讯云函数(云原生):腾讯云函数是一种无服务器计算服务,可让您只专注于编写和上传代码,而无需关心服务器配置和管理。了解更多:腾讯云函数产品介绍
  2. 腾讯云容器服务(云原生):腾讯云容器服务是一种高性能、高可扩展性的容器管理服务,可帮助您轻松部署、运行和管理容器化应用程序。了解更多:腾讯云容器服务产品介绍
  3. 腾讯云云服务器(CVM):腾讯云云服务器是弹性计算产品,提供安全、高性能、可弹性伸缩的云端计算服务。了解更多:腾讯云云服务器产品介绍

请注意,以上只是腾讯云的部分产品,更多产品和详细信息请参考腾讯云官方网站。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Python脚本执行shell的一个小问题

01 常用的commands模块 就是写python的时候,如果执行了一个命令,我们想知道它的返回,一般是可以通过commands这个模块来处理的,我比较习惯使用的是commands.getstatusoutput...我们脚本执行的开始时间start_time和脚本的最后输出时间end_time中间,有10s的时间差。...这个Popen类中还有其他很有用的函数,这里简要介绍,有需求可以去研究下: Popen.poll() 用于检查子进程(命令)是否已经执行结束,没结束返回None,结束后返回状态码。...Popen.wait(timeout=None) 等待子进程结束,并返回状态码;如果在timeout指定的秒数之后进程还没有结束,将会抛出一个TimeoutExpired异常。...Popen.send_signal(signal) 发送指定的信号给这个子进程。 Popen.terminate() 停止该子进程。 Popen.kill() 杀死该子进程。

1.9K10
  • Python 执行系统命令

    system函数可以将字符串转化成命令在服务器上运行;其原理是每一条system函数执行时,其会创建一个子进程在系统上执行命令行,子进程的执行结果无法影响主进程。...Popen方法: 1、Popen.poll():用于检查子进程是否已经结束。设置并返回returncode属性。 2、Popen.wait():等待子进程结束。设置并返回returncode属性。...在windows平台下,该方法将调用Windows API TerminateProcess()来结束子进程。 6、Popen.kill():杀死子进程。...10、Popen.pid:获取子进程的进程ID。 11、Popen.returncode:获取进程的返回值。如果进程还没有结束,返回None。...12、subprocess.call(*popenargs, **kwargs):运行命令。该函数将一直等待到子进程运行结束,并返回进程的returncode。文章一开始的例子就演示了call函数。

    1.7K10

    7-并发编程

    ,不再加入进程 p.close() # 防止主进程结束,子进程无法继续运行 p.join() 输出: 进程2624 打印 0 进程2625 打印 1 进程2626 打印 3 进程...进程可以实现并行运行代码,但是一旦进程太多,CPU运行不过来也是需要进行等待,用了多进程以后,就可以不使用队列了,也可以实现多线程的效果 除此之外,还可以多进程和多线程结合起来使用,一个简单的例子 from...进程线程切换都需要使用一定的时间。...子进程 在python中,如果要运行系统命令,会使用 subprocess 来运行,官方建议使用run 方法来运行系统命令,更高级的用法是直接使用其 Popen 接口。...) 其次,通过Popen.communicate() ,子进程可以在启动了以后,还可以进行参数的输入 import subprocess print('$ nslookup') p = subprocess.Popen

    34210

    Python用subprocess的Popen来调用系统命令

    subprocess.STDOUT 创建Popen对象时,用于初始化stderr參数,表示将错误通过标准输出流输出。 Popen的方法: Popen.poll() 用于检查子进程是否已经结束。...Popen.wait() 等待子进程结束。设置并返回returncode属性。 Popen.communicate(input=None) 与子进程进行交互。...在windows平台下,该方法将调用Windows API TerminateProcess()来结束子进程。 Popen.kill() 杀死子进程。...Popen.pid 获取子进程的进程ID。 Popen.returncode 获取进程的返回值。假设进程还没有结束,返回None。...该函数将一直等待到子进程执行结束,并返回进程的returncode。文章一開始的样例就演示了call函数。假设子进程不须要进行交 互,就能够使用该函数来创建。

    1.9K20

    python多线程与多进程及其区别

    如我们可以在python程序中打开记事本,打开cmd,或者在某个时间点关机: >>> import subprocess >>> subprocess.Popen(['cmd']) Popen...,那么运行时间和主线程基本一致。...但是对于python线程,双线程并行执行耗时比单线程要高的多,效率相差近10倍。...对于CPU密集型的线程,其效率不仅仅不高,反而有可能比较低。python多线程比较适用于IO密集型的程序。对于的确需要并行运行的程序,可以考虑多进程。...; 如果CPU和系统支持多线程与多进程,多个进程并行执行的同时,每个进程中的线程也可以并行执行,这样才能最大限度的榨取硬件的性能; 线程和进程的上下文切换 进程切换过程切换牵涉到非常多的东西,寄存器内容保存到任务状态段

    47610

    如何计算Python程序的运行时间?@RunTime装饰器,一行代码搞定

    今天给大家分享一下:如何在不改变原来代码的前提下,计算Python程序的运行时间? 首先我们写一个计算过程:从1加到1亿,然后再用一行代码计算它的运行时间。...1、从1加到100000000 我们先来看一个例子:累加,求从1加到100000000的结果。看过前面基础课程的同学,都能轻松写出来。...if __name__ == '__main__': start = 1 end = 1 * 10000 * 10000 add_sum(start, end) 2、运行时间...导入第三方库:potime pip install potime 在Python程序的def上面,添加装饰器**@RunTime** # pip install potime ,下载这个库 from...): # 算术逻辑 if __name__ == '__main__': add_sum(start, end) 输出结果中,就会自动包含运行时间了。

    1.1K20

    【愚公系列】2021年12月 Python教学课程 26-系统编程

    那么我们如何通过 Python 来完成这些命令行指令的执行呢?...首先,我们应该知道的是命令行指令的执行通常有两个我们比较关注的结果: 命令执行的状态码–表示命令执行是否成功 命令执行的输出结果–命令执行成功后的输出 早期的 Python 版本中,我们主要是通过 os.system...os.popen(command, [mode, [bufsize]]) 开启一个子进程执行 command 参数指定的命令,在父进程和子进程之间建立一个管道 pipe,用于在父子进程间通信。...如果命令执行时间超时,子进程将被杀死,并弹出TimeoutExpired 异常。...CompletedProcess 类有下面这些属性: args 启动进程的参数,通常是个列表或字符串。 returncode 进程结束状态返回码。0 表示成功状态。

    88620

    Python subprocess与命令行交互

    Python subprocess 模块是一个功能强大的库,用于启动和与子流程交互。 它附带了一些高级 api,比如调用、检查输出和运行,这些都集中在的程序运行和等待完成的子进程上。...可以用 run 来完成调用子进程的方式,但是对于 底层的进程创建与管理, Popen提供了很大的灵活性,以及处理未被常见函数覆盖的场景。...最新源代码: https://github.com/python/cpython/tree/3.8/Lib/subprocess.py 下面谈论不直接涉及一个长时间运行的子进程。...将它作为一个子进程启动,然后将客户机连接到它,并运行一些测试序列。 当完成后,希望以一种有序的方式关闭子程序。 这对于同步运行子进程的 api 来说是很难实现的,因此必须查看一些底层级别的 api。...使用底层的 Popen API 异步启动进程(意味着 Popen 立即返回,子进程在后台运行)。

    7.7K22

    进程和线程(上)

    最近会开始继续 Python 的进阶系列文章,这是该系列的第一篇文章,介绍进程和线程的知识,刚好上一篇文章就介绍了采用 concurrent.futures 模块实现多进程和多线程的操作,本文则介绍下进程和线程的概念...,多个线程共享了CPU的执行时间。...randint 函数来随机输出当前下载文件的耗时,从结果看,程序运行时间等于两个下载文件的任务时间总和。...运行结果如下所示,耗时就不是两个任务执行时间总和,速度上也是大大的提升了。 开始下载Python.pdf... 开始下载nazha.mkv... Python.pdf下载完成!...然后 join() 就是等待所有进程执行完任务。 运行结果如下所示: Waiting for all subprocesses done... 开始下载Python.pdf...

    63310

    python实现局域网ip地址扫描

    python 遍历局域网ip 从知道python开始,我的视线里就没缺少过他。尤其是现如今开发语言大有傻瓜化的趋势。而作为这一趋势的领导,脚本语言就显得格外亮眼。...Popen的方法: Popen.poll()   用于检查子进程是否已经结束。设置并返回returncode属性。 Popen.wait()   等待子进程结束。...Popen.communicate(input=None)   与子进程进行交互。向stdin发送数据,或从stdout和stderr中读取数据。可选参数input指定发送到子进程的参数。...在windows平台下,该方法将调用Windows API TerminateProcess()来结束子进程。 Popen.kill()   杀死子进程。...Popen.pid   获取子进程的进程ID。 Popen.returncode   获取进程的返回值。如果进程还没有结束,返回None。

    3.1K10

    解决subprocess.CalledProcessError: Command ‘‘

    它提供了一个简便的方式来调用外部程序并与其进行交互。 子进程在操作系统中是独立运行的进程,它可以执行不同的命令、程序或脚本。...子进程模块可以帮助我们在Python程序中启动、控制和与子进程进行数据交换。 subprocess模块中最常用的函数是run()、call()和Popen()。...Popen(): 这是一个更底层、更灵活的函数,用于创建一个子进程,并返回一个Popen对象,可以通过该对象控制和管理子进程。...Popen类还提供了许多其他方法和属性,例如kill()用于终止子进程,poll()用于检查子进程是否结束等。...subprocess模块也提供了一些其他函数和常量,用于设置和处理子进程的其他参数和属性,例如设置执行路径、设置环境变量、设置超时时间等。

    96060

    正确的使用python调用shell的姿势

    输出123 我们可以看到popen方法可以获取命令执行后到输入结果,但这还是有缺陷的,我们知道在linux里面,有标准的0,1,2来代表标准输入,输出和错误,现在只有stdout没有其他的两个变量还是有限制的...Popen 是 subprocess的核心,子进程的创建和管理都靠它处理。...stdin, stdout, stderr:分别表示程序的标准输入、输出、错误句柄 preexecfn:只在 Unix 平台下有效,用于指定一个可执行对象(callable object),它将在子进程运行之前被调用...cwd:用于设置子进程的当前目录。env:用于指定子进程的环境变量。如果 env = None,子进程的环境变量将从父进程中继承。...,这个函数会等整个shell执行结束后,输出结果: out, err, code= normal_run_command("sh xs.sh")print out 至此,我们已经介绍完了如何使用python

    7.5K20

    python模块--subprocess

    代码中去执行一些系统命令,在执行python程序时,该模块会创建出一个子进程,来运行外部程序。     ...丢失), 往返行程的估计时间(以毫秒为单位):     最短 = 0ms,最长 = 0ms,平均 = 0ms subprocess.Popen()     上面几个函数都是Popen()的封装,主进程都会等待子进程执行完毕...,Popen()创建的子进程不会被等待,相当于异步执行。    ... at 0x02230810> 0.06108553745727746 #从时间上看,主程序很快就结束了 Popen()创建的对象方法包括: POPEN1.poll() # 检查子进程状态 POPEN1....kill() # 终止子进程 POPEN1.terminate() # 终止子进程 POPEN1.send_signal() # 向子进程发送信号 pid属性包含了子进程的pid号     2.subprocess.Popen

    67410

    python 性能提升之 并行map

    前段时间进行单一目录下10万张图片发送,效果很差,数据积压原来越多。 性能问题提上议程。 采用多线程 多进程 感觉比较繁琐,网上有介绍 map的并行处理的,使用后性能提高明细。...网上介绍map如下 介绍:Map Map是一个很棒的小功能,同时它也是Python并行代码快速运行的关键。给不熟悉的人讲解一下吧,map是从函数语言Lisp来的。map函数能够按序映射出另一个函数。...有两个能够支持通过map函数来完成并行的库:一个是multiprocessing,另一个是鲜为人知但功能强大的子文件:multiprocessing.dummy。 题外话:这个是什么?...你从来没听说过dummy多进程库?我也是最近才知道的。它在多进程的说明文档里面仅仅只被提到了一句。而且那一句就是大概让你知道有这么个东西的存在。我敢说,这样几近抛售的做法造成的后果是不堪设想的!...Dummy就是多进程模块的克隆文件。唯一不同的是,多进程模块使用的是进程,而dummy则使用线程(当然,它有所有Python常见的限制)。也就是说,数据由一个传递给另一个。

    2.5K20

    Python 【基础面试题】

    没有设置守护线程时,主线程将会等待timeout的累加和这样的一段时间,时间一到,主线程结束,但是并没有杀死子线程,子线程依然可以继续执行,直到子线程全部结束,程序退出。...、在项目里用的不多) 插入日志的时候 redis缓存 为什么使用装饰器 结合应用场景说需求 如何使用装饰器 装饰器求函数运行时间 Python 闭包 当一个嵌套函数在其外部区域引用了一个值时,该嵌套函数就是一个闭包...像Linux进程那样,一个进程可以fork一个子进程,并让这个子进程exec另外一个程序 在Python中,我们通过标准库中的subprocess包来fork一个子进程,并运行一个外部的程序。...() 实际上,上面的几个函数都是基于Popen()的封装(wrapper),这些封装的目的在于让我们容易使用子进程 当我们想要更个性化我们的需求的时候,就要转向Popen类,该类生成的对象用来代表子进程...with 语句开始运行时,会在上下文管理器对象上调用enter方法。 with 语句运行结束后,会在上下文管理器对象上调用exit方法,以此扮演 finally 子句的角色。

    1.2K20
    领券