流程

时间:2018-01-29 21:37:23

标签: python windows filesystems

如何获取单个应用程序(.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的平台相关解决方案。

0 个答案:

没有答案