Если вам нужно использовать эвристический метод, вы можете рассмотреть webbrowser
. Это стандартная библиотека и, несмотря на ее имя, она также попытается открыть файлы:
Обратите внимание, что на некоторых платформах, пытаясь открыть имя файла с помощью этой функции, может работать и запускать связанную с операционной системой программу , Однако это не поддерживается и не переносится. ( Ссылка )
Я пробовал этот код, и он отлично работал в Windows 7 и Ubuntu Natty:
import webbrowser webbrowser.open("path_to_file")
Этот код также работает отлично в Windows XP Professional, используя Internet Explorer 8.
Я не уверен, что вы понимаете транзакции в RDBMS. Вы можете создать транзакцию внутри сеанса, а затем вы можете зафиксировать или откатить транзакцию. Нет возможности для обмена транзакциями между соединениями, базами данных и схемами. Подробнее о транзакциях можно прочитать здесь: Транзакции PostgreSQL
Существует опция создания транзакции двухфазного принятия. Если вы создаете транзакцию такого типа, транзакция больше не связана с сеансом, и ее состояние сохраняется на диске. Но я думаю, что это не то, что вы имеете в виду. Вы можете прочитать больше о транзакциях двухфазной фиксации .