Я пытаюсь отладить некоторый код ввода-вывода, однако файл закрывается во время исключений.Как остановить ipython от закрытия открытых дескрипторов файлов для неработающего исключения
Используя следующие отрезала
with open('test', 'w') as fid:
fid.write('a')
1/0
In [1]: %run test.py
---------------------------------------------------------------------------
ZeroDivisionError Traceback (most recent call last)
***/test.py in <module>()
1 with open('test', 'w') as fid:
2 fid.write('a')
----> 3 1/0
ZeroDivisionError: division by zero
In [2]: %debug
***/test.py(3)<module>()
1 with open('test', 'w') as fid:
2 fid.write('a')
----> 3 1/0
ipdb> fid.write('b')
*** ValueError: I/O operation on closed file.
должен пояснить, что я имею в виду. Я действительно понимаю, что закрытие дескриптора файла независимо от того, что является видом точки контекстного менеджера file
. Однако, поскольку stacktrace сохранен IPython (5.1), должно быть возможно открыть файл в том же месте - при условии, что файл не был изменен тем временем.
Возможно, я не очень хорошо объяснил, что я имел в виду. Я делаю сейчас, это точка контекст-менеджера, поэтому я не хочу его оставлять. Однако для целей отладки это действительно плохо. Мой вопрос: как я могу открыть файл в том же месте. Я бы предположил, что это возможно, поскольку вся информация защищена в стеке. –