前言

标准库是Python的一个组成部分。这些标准库是Python为你准备好的利器,可以让编程事半功倍。特别是有时候需要获取进程的pid,但又无法使用第三方库的时候。下面话不多说了,来一起看看详细的介绍吧。

方法适用linux平台.

方法1

使用subprocess 的check_output函数执行pidof命令

from subprocess import check_output

def get_pid(name):

return map(int,check_output(["pidof",name]).split())

In [21]: get_pid("chrome")

Out[21]:

[27698, 27678, 27665, 27649, 27540, 27530,]

方法2

使用pgrep命令,pgrep获取的结果与pidof获得的结果稍有不同.pgrep的进程id稍多几个.pgrep命令可以使适用subprocess的check_out函数执行

import subprocess
def get_process_id(name):

"""Return process ids found by (partial) name or regex.

>>> get_process_id('kthreadd')

[2]

>>> get_process_id('watchdog')

[10, 11, 16, 21, 26, 31, 36, 41, 46, 51, 56, 61] # ymmv

>>> get_process_id('non-existent process')

[]

"""

child = subprocess.Popen(['pgrep', '-f', name], stdout=subprocess.PIPE, shell=False)

response = child.communicate()[0]

return [int(pid) for pid in response.split()]

方法3

直接读取/proc目录下的文件.这个方法不需要启动一个shell,只需要读取/proc目录下的文件即可获取到进程信息.

#!/usr/bin/env python

import os

import sys

for dirname in os.listdir('/proc'):

if dirname == 'curproc':

continue

try:

with open('/proc/{}/cmdline'.format(dirname), mode='rb') as fd:

content = fd.read().decode().split('\x00')

except Exception:

continue

for i in sys.argv[1:]:

if i in content[0]:

print('{0:<12} : {1}'.format(dirname, ' '.join(content)))

phoemur ~/python $ ./pgrep.py bash

1487 : -bash

1779 : /bin/bash

4,获取当前脚本的pid进程

import os

os.getpid()

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对脚本之家的支持。

python获取当前线程名称_python使用标准库根据进程名如何获取进程的pid详解相关推荐

  1. python中的json函数_python中装饰器、内置函数、json的详解

    装饰器 装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象. 先看简单例子: def run(): time.sleep(1 ...

  2. python中主函数循环_python入门(三):分支、循环、函数详解

    1.分支 if循环格式: if condition_1: statement_block_1 elif condition_2: statement_block_2 else: statement_b ...

  3. python中x y表示_Python中表达式x += y和x = x+y 的区别详解

    前言 本文主要给大家介绍的是关于Python中表达式x += y和x = x+y 区别的相关内容,分享出来供大家参考学习,下面来看看详细的介绍: 直接看下面代码: x +=y In [66]: id( ...

  4. python合成gif动图_Python图像处理之gif动态图的解析与合成操作详解

    本文实例讲述了Python图像处理之gif动态图的解析与合成操作.分享给大家供大家参考,具体如下: gif动态图是在现在已经司空见惯,朋友圈里也经常是一言不合就斗图.这里,就介绍下如何使用python ...

  5. python离线录音转文字_Python将文字转成语音并读出来的实例详解

    前言 本篇文章主要介绍,如何利用Python来实现将文字转成语音.将文字转成语音主要有两种不同的实现方法:先将文字转成语音,然后再通过读取语音实现发音.直接调用系统内置的语音引擎实现发音,后一种方法的 ...

  6. python中函数的调用_python函数的调用、函数中变量的使用之详解

    '''函数的工作原理:函数内部的变量都是临时的, 当你的函数返回以后,返回值可以被赋予一个变量. 这里是创建了一个新变量,用来存放函数的返回值. ''' def secret_formula(star ...

  7. 【Linux 内核】进程管理 ( 进程特殊形式 | 内核线程 | 用户线程 | C 标准库与 Linux 内核中进程相关概念 | Linux 查看进程命令及输出字段解析 )

    文章目录 一.进程特殊形式 ( 内核线程 | 用户线程 ) 二.C 标准库与 Linux 内核中进程相关概念 三.Linux 查看进程命令及输出字段解析 一.进程特殊形式 ( 内核线程 | 用户线程 ...

  8. Java 线程实例一(查看线程是否存活、获取当前线程名称、状态监测、线程优先级设置、死锁及解决方法、获取线程id、线程挂起)

    查看线程是否存活 以下实例演示了如何通过继承 Thread 类并使用 isAlive() 方法来检测一个线程是否存活: public class TwoThreadAlive extends Thre ...

  9. [Python从零到壹] 三十六.图像处理基础篇之图像算术与逻辑运算详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. ubuntu下安装2个mysql_Linux 同一系统安装两个MySQL
  2. AMD:浏览器中的模块规范
  3. 连续变量的转换:ECDF、Box-Cox、Yeo-Johnson
  4. 有关dubbo面试的那些事儿
  5. Kafka入门教程(转载)
  6. 深度丨机器学习的理论局限性与因果推理的七大特性zhuan'z
  7. idea 不打开文件提示错误_解决IDEA误删out目录下的文件导致404无法访问的问题
  8. 标称型数据和数值型数据_统计信息中的数据类型-标称,有序,间隔和比率数据类型,并举例说明
  9. python中capital是什么意思_capital是什么意思_capital的翻译_音标_读音_用法_例句_爱词霸在线词典...
  10. canvas的beginPath和closePath分析总结,包括多段弧的情况
  11. 酷柚易汛进销存开源版升级来啦
  12. matlab 中gradient()函数的用法
  13. centos7安装netspeeder教程
  14. Unirech-最新腾讯云国际版注册流程-无需绑定paypal
  15. 华为十年(转贴)原华为牛人写的
  16. imx6ull-qemu 裸机教程1:GPIO,IOMUX,I2C
  17. 如何高效利用GitHub
  18. 超级电容与锂电池的比较
  19. 大众点评网和爱帮网官司给我们的启示
  20. mysql5.7和mysql8.0区别

热门文章

  1. 软件工程实践2017第一次作业-051502125
  2. 多种脚本语言生成九九乘法口诀表
  3. 献给写作者的 Markdown 新手指南
  4. PHP使用session_set_save_handler陷阱
  5. 关于win7的64位和32位有什么不同性价比怎么比
  6. java神雕侠侣1古墓情缘游戏攻略_《神雕侠侣》古墓派平民玩法攻略
  7. 新人如何快速上手新项目?
  8. SpringBatch适配器详解
  9. go map(映射)的概念、3种创建方式及map的CRUD操作
  10. vue的插值语法及el和data、methods语法释义