Вы можете получить идентификатор процесса вашего приложения, а затем запросить у ОС все открытые файлы, используя lsof
, ища идентификатор процесса:
from string import *
from os import getpid
from subprocess import check_output, STDOUT
pid = getpid()
lsof = (check_output(['/usr/sbin/lsof', '-p', str(pid)], stderr=STDOUT)).split("\n")
for line in lsof[1:]:
print line
Обычные файлы будут иметь тип 'REG'
в пятом столбце, [4]
, если вы индексируете в.
Файлы, открытые в работающем коде, могут отображаться аналогичным образом:
из строки импорта *
из операционной системы импорт импорт getpid
из подпроцесса импорт check_output, STDOUT
импорт ре
pid = getpid()
f = open('./trashme.txt', 'w')
f.write('This is a test\n')
lsof = (check_output(['/usr/sbin/lsof', '-p', str(pid)], stderr=STDOUT)).split("\n")
print lsof[0]
for line in lsof[1:]:
if (re.search('trashme', line)): print line
f.close
Что приводит к:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
python 6995 greg 3w REG 14,2 0 2273252 /Users/greg/Desktop/trashme.txt