на mac os вы можете вызвать 'open'
import os
os.popen("open myfile.txt")
, это откроет файл с помощью TextEdit или любое другое приложение будет установлено по умолчанию для этого типа файла
Я бы добавил массив, хранящий некоторый уникальный хэш всех родительских узлов в узле, и просто проверил его использование. Это можно оптимизировать, конечно.