进程打开的文件列表

2024-06-17 09:31:02 发布

您现在位置:Python中文网/ 问答频道 /正文

如何获取单个应用程序(.exe)当前打开的文件列表

例如,我运行了媒体播放器MPV,它正在播放一个视频文件,知道它的PID如何获取进程所保存的文件

运行此代码

p = psutil.Process(15228)  # manually set PID of MPV for testing
pprint.pprint(p.open_files())

它返回以下数组

[popenfile(path='C:\\Windows\\System32\\pt-BR\\msvfw32.dll.mui', fd=-1),
 popenfile(path='C:\\Windows\\Fonts\\arial.ttf', fd=-1),
 popenfile(path='C:\\Windows\\System32\\pt-BR\\kernel32.dll.mui', fd=-1),
 popenfile(path='C:\\Windows\\System32\\pt-BR\\MMDevAPI.dll.mui', fd=-1),
 popenfile(path='C:\\Windows\\System32\\pt-BR\\avicap32.dll.mui', fd=-1)]

如果我通过使用p.cmdline()获取cmdline并删除指向该文件的文件夹,就可以成功获取当前播放的文件,但这只能在直接打开视频文件时使用,如果先打开播放器,然后将文件拖到其中,则没有要解析的cmdline

就目前而言,它可以是Windows平台依赖的解决方案


Tags: 文件pathbrptwindowspidpprint视频文件