Получить код, введенный до сих пор в сеансе интерпретатора Python
Есть ли быстрый и удобный способ получить весь код, введенный в интерпретатор python? Например, если я введу это в интерпретатор:
Steven$ python
Python 2.7.5 (default, Mar 9 2014, 22:15:05)
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.0.68)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hi"
hi
>>> a = [1,2,3]
>>> for e in a:
... print e
...
1
2
3
>>> print "bye"
bye
>>>
Я хотел бы получить эти строки:
print "hi"
a = [1,2,3]
for e in a:
print e
print "bye"
2 ответа
Решение
Вы можете использовать readline
модуль.
Python 2.7.5 (default, Nov 3 2014, 14:26:24)
[GCC 4.8.3 20140911 (Red Hat 4.8.3-7)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hi"
hi
>>> a = [1,2,3]
>>> for e in a:
... print e
...
1
2
3
>>> print "bye"
bye
>>> import readline
>>> readline.write_history_file('history.py')
файл history.py
будет содержать вашу историю, включая последние 2 строки:
$ cat history.py печать "привет" а = [1,2,3] для е в: распечатать е печать "пока" импорт readline readline.write_history_file('history.py')
Функция%history magic должна сделать это за вас.
In [1]: l = [1,2,3]
In [2]: %history
l = [1,2,3]
%history
Если вы обнаружите, что делаете это часто, подумайте об использовании ноутбука ipython.