Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法检查运行python程序的内容?_Python_Terminal_Python Idle_Sys - Fatal编程技术网

有没有办法检查运行python程序的内容?

有没有办法检查运行python程序的内容?,python,terminal,python-idle,sys,Python,Terminal,Python Idle,Sys,我想为终端和空闲创建一个脚本,但我不知道如何创建。在sys.modules中使用if'idlelib:可以查看它是否在空闲状态下运行,但是有没有办法通过替换'idlelib'来使用相同的代码来查找它是否在终端中?您可以尝试使用psutil和os import psutil import os if psutil.Process(os.getpid()).parent().name() in ["cmd.exe","bash"]: print(&qu

我想为终端和空闲创建一个脚本,但我不知道如何创建。在sys.modules中使用
if'idlelib:
可以查看它是否在空闲状态下运行,但是有没有办法通过替换
'idlelib'
来使用相同的代码来查找它是否在终端中?

您可以尝试使用
psutil
os

import psutil
import os
if psutil.Process(os.getpid()).parent().name() in ["cmd.exe","bash"]:
    print("in cmd")

使用idle时,它返回了
'pythonw.exe'
,这说明了它的工作原理。

您所说的“仅用于终端和idle”是什么意思?什么不是Terminal或IDLE?@mkrieger1 Solid point,但我想确定一下,因为我计划将其转换为带参数的Terminal可执行文件,但如果它处于IDLE状态,则仍然使用输入。您是否询问如何确定Python文件是作为脚本运行还是作为模块导入?@mkrieger1否,我想得到运行脚本的进程的名称,然后检查它是否是我想要的。如果不是你想要的,你打算怎么做?或者,如果您根本不执行此检查,会出现什么问题?我会将“cmd.exe”更改为什么,因为我使用的是终端,而不是windows命令行?在Centos上运行时,您会得到
bash
,但您也可以尝试使用
print(psutil.Process(os.getpid()).parent().name()打印
若要获取案例中的终端,请ModuleNotFoundError:没有名为“psutil”的模块。我必须先下载它吗?我正在运行Python 3.8.5,并且psutil存在。@ncmathsadist我正在尝试使用pip3下载它,我想它必须先下载。