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

从进程id获取正在运行的python脚本的源文件路径

从进程ID获取正在运行的Python脚本的源文件路径可以通过以下步骤实现:

  1. 首先,使用psutil库来获取当前正在运行的所有进程的信息。psutil是一个跨平台的库,可以用于获取系统信息和进程管理。
  2. 使用psutil.Process(pid)方法,其中pid是进程ID,来获取指定进程的信息。
  3. 通过cmdline()方法获取进程的命令行参数,这将包含正在运行的Python脚本的路径。
  4. 使用os.path.abspath()方法将相对路径转换为绝对路径。

下面是一个示例代码:

代码语言:txt
复制
import os
import psutil

def get_python_script_path(pid):
    process = psutil.Process(pid)
    cmdline = process.cmdline()
    script_path = cmdline[0]
    abs_script_path = os.path.abspath(script_path)
    return abs_script_path

这个函数接受一个进程ID作为参数,并返回正在运行的Python脚本的源文件路径。

请注意,这个方法只能获取正在运行的Python脚本的路径,无法获取已经结束的脚本的路径。此外,如果进程不是由Python解释器启动的,或者进程没有命令行参数,那么将无法获取到脚本路径。

推荐的腾讯云相关产品:腾讯云云服务器(CVM),产品介绍链接地址:https://cloud.tencent.com/product/cvm

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

相关·内容

python subprocess运行进程中实时获取输出

起因是这样,c++程序开发后 功能号和指令,校验需要人工去看对照二进制代码,量大还费力, 于是打算利用python 去调用 c++程序去校验指令, 首先要做就是用python 获取c++程序...printf() 或cout 输出; 环境linux python 3.8.x 以下代码实现,获取子程序输出 command='....linux shell指令,如果要用shell 指令如ls 要将false 变成true, 通过指定stderr=subprocess.STDOUT,将子程序标准错误输出重定向到了标准输出,以使我们可以直接标准输出中同时获取标准输出和标准错误信息...p.poll() 返回子进程返回值,如果为None 表示 c++子进程还未结束. p.stdout.readline() c++标准输出里获取一行....参考文章1 pythonsubprocess.Popen()使用 参考文章 2 python subprocess运行进程中实时获取输出

10.3K10

如何获取当前正在执行脚本绝对路径

dirname $0 最近在看脚本时候经常发现有“dirname $0”这样一种表述,很是不解。...# get path to scripts scripts_dir=`dirname $0` 刚开始我还以为需要把dirname改成对应路径,同时又不解$0在这里是表达什么含义。.../bin/bash cd `dirname $0` echo `pwd` 切到/home/zwang/1/2/3/4路径下,运行test.sh后就位于脚本所在目录并输出路径了。...现在我们回头来把这个脚本拆开来理解一下 `` 表示执行引号内命令 $0 表示当前执行脚本文件名 dirname $0 表示获取当前执行脚本路径 这样一来就能明白dirname $0是如何获取当前执行脚本路径了吧.../bin/bash basepath=$(cd `dirname $0`; pwd) echo $basepath 此时输出结果是脚本所在路径,但如果我换一种命令替换方式 #!

1.8K20
  • linux下3种高效Kill掉所有python进程方法(包括编写运行脚本 .sh)

    linux下3种kill所有python进程方法 这篇文章主要介绍了linux下3种kill所有python进程方法,需要朋友可以参考下 在linux系统管理中,我们有时候需要kill掉所有...python进程,初学者一般先查询出python正在运行进程(ps -ef|grep python),然后一条条kill掉,或者写好一个脚本(方法2),实际上方法都有现成,这边有3种方法. 1....killall方式 # killall python 2.pkill方式 sudo pkill python 2. ps方式(脚本) ps列出ttlsapid,然后依次kill掉,比较繁琐...# ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9 #!.../bin/bash PROCESS=`ps -ef | grep python | grep -v grep | awk '{print $2}' | xargs kill -9` #PROCESSE

    7K10

    Dockerfile命令及实践构建一个网站

    镜像是什么发行版,你获取镜像,是别人定制好,你下载使用,你希望得到一个基于centos7.8发行版,运行mysql) 直接运行该镜像,通过端口映射,运行mysql,docker run mysql...:5.6 (容器能够运行,必须在容器内,有一个进程在前台运行,该容器内,有mysql正在前台运行)。...ADD 特性和COPY基本一致,不过多些功能 源文件是一个url,此时docker引擎会下载该链接,放入目标路径,且权限自动设为600,若这不是期望结果,还得增加一层 源文件是一个url,且是一个压缩包...,不会自动解压,也得是单独用RUN指令解压 源文件是一个压缩文件,且是gzip、bzip2、,ADD指令会自动解压缩文件到目标路径。...(1)进入容器 docker exec -it 容器id bash (2)修改容器内程序 cat test_flask.py (3)退出容器,重启容器 exit docker restart 容器id

    1.3K20

    PyQt5 技巧篇-解决相对路径无法加载图片问题,styleSheet通过相对路径加载图片,python获取当前运行文件绝对路径

    Python获取绝对路径 先说一下python获取当前运行文件绝对路径方法: import os url = os.path.dirname(os.path.abspath(__file__))...# 文件夹 url = os.path.abspath(__file__) # 文件 运行效果: C:\Users\Administrator\Desktop\lanzao_Robot\robot\...好像跟pyqt5自身绘图机制有关,父类子类啥。以后有空可以研究下。 既然只有绝对路径管用,那我就用绝对路径,变相相对路径。 我先获取运行文件决定位置,再根据相对路径合成新路径。...# 获取绝对路径 url_father = os.path.dirname(os.path.abspath(__file__)) # 因为styleSheet里正斜杠才管用,我要把反斜杠转化为正斜杠...for i in url_father: if(i == "\\"): url = url + "/" else: url = url + i # 合成新路径并使用

    2.3K30

    一日一技:导入父文件夹中模块并读取当前文件夹内资源

    摄影:产品经理 产品经理独自在深圳吃早餐 在某些特殊情况下,我们 Python 脚本需要调用父目录下其他模块。例如: ?...为了简化问题,我单独写了一个演示样例。它文件结构与每个文件中内容如下: ? 现在,我直接在 scripts 文件夹里面运行run.py会报错,提示最顶层之外相对导入。...于是尝试获取当前正在运行这个文件绝对路径: import sys from pathlib import Path current_folder = Path(__file__).absolute(...导入模块已经正常了,但是读取资源文件又异常了。 这是因为,import导入模块时,是根据sys.path中路径来寻找。但是读取资源文件时候,相对文件路径是相对于工作区来寻找。...总结 涉及到模块导入相关环境,可以通过在sys.path添加绝对路径来解决。涉及到读取资源文件相关环境,可以通过使用os.chdir修改工作区为另一个绝对路径来解决。

    2K30

    Python和R整合进一个数据分析流程

    sys模块包含了系统具体参数和函数,在这里,我们只对 argv属性感兴趣。这个argv属性是所有被传递到当前正在执行脚本参数列表。表中第 一个元素是正在被执行脚本完整路径。...在运行下面的命令时,启动了一个新 Python 进程执行该脚本。 在执行过程中,任何被输出到标准输出和标准错误流数据会返回到控制台显示。...在这种方式下运行命令行脚本是有用,但如果希望用这个方法执行多个连续却相互独立脚本时,就变得繁琐,并且容易出错。然而,这可能让一个 Python或R进程直接去执行另一个类似的命令。...这样有好处,即从一个Python进程启动一个R中进程运行特定脚本,进而完成分析。一旦R 脚本运行完毕,R中子进程输出不是被传到控制台,而是返回到父进程中。...此外,这些参数首先必须总是正在执行脚本路径。 最后一个困难可能是R脚本路径名称中空格处理引起

    3.1K80

    15 分钟掌握 15 个 Docker 小窍门

    获取最近运行容器id 这是我们经常会用到一个操作,按照官方示例,你可以这样做(环境ubuntu): $ ID=$(docker run ubuntu echo hello world) hello...world $ docker commit $ID helloworld fd08a884dc79 这种方式在编写脚本时候很有用,比如你想在脚本中批量获取id,然后进一步操作。...id,通过设置别名(alias),dl命令就是获取最近容器id。...这样,就无需再输入冗长docker ps -l -q命令了。通过两个斜引号“,可以获取dl命令值,也就是最近运行容器id。...docker ps -a -q命令列出所有容器id,然后根据id删除容器。docker rm命令遇到正在运行容器就会失效,所以这个命令完美的删除了所有没在运行容器。

    1.8K50

    Python和R整合进一个数据分析流程

    sys模块包含了系统具体参数和函数,在这里,我们只对 argv属性感兴趣。这个argv属性是所有被传递到当前正在执行脚本参数列表。表中第一个元素是正在被执行脚本完整路径。...在运行下面的命令时,启动了一个新 Python 进程执行该脚本。 在执行过程中,任何被输出到标准输出和标准错误流数据会返回到控制台显示。...在这种方式下运行命令行脚本是有用,但如果希望用这个方法执行多个连续却相互独立脚本时,就变得繁琐,并且容易出错。然而,这可能让一个Python或R进程直接去执行另一个类似的命令。...这样有好处,即从一个Python进程启动一个R中进程运行特定脚本,进而完成分析。一旦R脚本运行完毕,R中子进程输出不是被传到控制台,而是返回到父进程中。...此外,这些参数首先必须总是正在执行脚本路径。 最后一个困难可能是R脚本路径名称中空格处理引起

    2.4K80

    溯源反制-自搭建蜜罐到反制攻击队

    ,结束收工 小插曲:浏览器历史记录还获取到了灯塔系统账密,攻击队应该感激我没有把任务删掉哈哈 反制攻击队成员2 又是一位幸运玩家不小心踩罐,机器上python脚本文件找到ICP备案查询cookie...和token burp替换cookie后成功获取攻击者百度ID 进而互联网搜索其名字相关信息,发现还搭建了技术博客,成功定位其真实姓名 吴xx 并通过机器上CISP-PTE考试信息进一步确认其身份...= nil { fmt.Println("无法获取用户桌面路径:", err) return } desktopFiles, err := ioutil.ReadDir(filepath.Join...:= filepath.Base(os.Args[0]) // 当前运行进程名称 // 比较源文件名称和进程名称是否相同 if strings.EqualFold(sourceFilename..., processName) { // 进程名称和源文件名称相同,正常运行 // 在这里执行正常操作 } else { // 进程名称和源文件名称不同,可能在沙箱环境中运行

    46920

    jdk文件bin目录中各种工具作用(javacjavapjavajarjstatjvadoc等)

    srcFile是源文件.java文件路径。     ...ID,即当前运行java进程号          [interval] : 连续输出时间间隔,单位为秒或者毫秒          [ count] : 连续输出次数,如果缺省打印无数次         ...等待正在运行 VM 使用标准连接器在指定地址处连接     -listenany                                            等待正在运行 VM 使用标准连接器在任何可用地址处连接...Javah获取Java源文件并生成C头文件,其中包含您Java代码中所有本机方法JNI存根(stub)。...jps:用来查看基于HotSpotJVM里面中,所有具有访问权限Java进程具体状态, 包括进程ID进程启动路径及启动参数等等,与unix上ps类似,只不过jps是用来显示java进程,可以把

    2.2K20

    溯源反制-自搭建蜜罐到反制攻击队

    ,结束收工 小插曲:浏览器历史记录还获取到了灯塔系统账密,攻击队应该感激我没有把任务删掉哈哈 反制攻击队成员2 又是一位幸运玩家不小心踩罐,机器上python脚本文件找到ICP备案查询cookie...和token burp替换cookie后成功获取攻击者百度ID 进而互联网搜索其名字相关信息,发现还搭建了技术博客,成功定位其真实姓名 吴xx 并通过机器上CISP-PTE考试信息进一步确认其身份...= nil { fmt.Println("无法获取用户桌面路径:", err) return } desktopFiles, err := ioutil.ReadDir(filepath.Join...:= filepath.Base(os.Args[0]) // 当前运行进程名称 // 比较源文件名称和进程名称是否相同 if strings.EqualFold(sourceFilename..., processName) { // 进程名称和源文件名称相同,正常运行 // 在这里执行正常操作 } else { // 进程名称和源文件名称不同,可能在沙箱环境中运行

    55120

    Next.js +Egg.js+React项目服务器部署超详解

    然后我们可以将自己项目代码文件夹本地传输到服务器目录中任一路径(建议不要放在root目录下,可能会存在一些文件权限问题)。...4:启动全部/指定已创建进程: pm2 start all pm2 start 进程id 5:重启全部/指定已创建正在运行进程: pm2 reload all pm2 reload 进程...id 6:删除全部/指定已创建进程: pm2 delete all pm2 delete 进程id 7:停止全部/指定已创建正在运行进程: pm2 stop all pm2 stop 进程...id 4.2.2 运行service 先切换到service文件夹路径。...由于它基于生产环境是打包生成静态资源文件,所以我们需要用到Nginx来配置它服务器访问路径,后面再详细说明。

    3.2K10

    Python 进阶指南(编程轻松进阶):二、环境配置和命令行

    一般来说,一个命令行一次只能运行一个进程(尽管您可以同时打开多个命令行)。 每个操作系统都有查看正在运行进程列表方式。...如果进程没有响应,这些任务管理器可以强制终止正在运行进程。 命令行 命令行是一个基于文本程序,让你输入命令与操作系统交互并运行程序。...或者,当您使用python yourScript.py命令终端窗口运行 Python 脚本时,yourScript.py部分是一个参数,它告诉python程序应该执行哪个脚本。...环境变量和路径 一个程序所有正在运行进程,不管它是用什么语言编写,都有一组叫做环境变量变量,可以存储一个字符串。环境变量通常包含系统范围设置,每个程序都会发现这些设置很有用。...子进程可以更改其环境变量值,而不会影响父进程环境变量,反之亦然。 您可以将操作系统环境变量集视为“主副本”,进程该副本复制其环境变量。操作系统环境变量变化没有 Python 程序频繁。

    6.3K60

    Linux常用50个命令分享:功能、示例与实用技巧

    20. kill命令(进程终止工具) 功能:向指定进程发送终止信号,使其停止运行。 用法:kill 选项 进程ID 示例: kill 1234:向进程ID为1234进程发送终止信号。...用法:cp 选项 源文件/目录 目标文件/目录 示例: cp file.txt /path/to/destination:将file.txt文件复制到目标路径。...用法:mv 选项 源文件/目录 目标文件/目录 示例: mv file.txt /path/to/destination:将file.txt文件移动到目标路径。...示例: nohup python my_script.py & 这个示例中,执行了名为my_script.pyPython脚本,并将其放在后台运行。...44. jps命令(JVM进程状态工具) 功能:显示当前系统中正在运行Java进程。 用法:jps 选项 示例: jps:显示当前系统中Java进程列表。

    50010

    工作常用linux命令「建议收藏」

    查看进程是否已经启动:ps -ef | grep xxx ps看哪些进程正在运行运行状态、进程是否结束等… service启动重启停止服务-:service mysql status显示Mysql服务当前状态...用nohup时候要用命令绝对路径 type python获取python绝对路径 type hadoop获取hadoop绝对路径 后台运行:nohup /xx/xx/python **....注意把解释器路径打全 可以用type python获得绝对路径 启动成功了能看到返回一个编号和进程id,如,[1] 22772 还会返回: appending output to `nohup.out...’ 查看当前终端后台运行任务: jobs jobs -l能查看到pid 查看当前所有进程:ps -ef|grep codeFilename 或者ps -ef|grep 进程Id 终止后台运行进程...:kill -9 进程id进程 我最常用: ps aux | grep “test.py” 看test.py是否在运行着,查test.pypid等 对于nohup后台启动进程,我常用jobs -

    2.8K30
    领券