ipython: tam geçmişi yazdır (sadece mevcut oturumu değil)


128

içinde ipython, yakın geçmişi kullanabilir %histveya %historyyazdırabilirim, ancak bu yalnızca geçerli oturumun geçmişini yazdırır.

Bash historykomutunun yaptığı gibi tüm geçmişi yazdırmak istiyorum .

Yapmaya çalıştığım şey, tam bir geçmiş elde etmek, böylece daha sonra regex ile arama yapabilir, belirtilen komutlardan sonra hangi komutların izlendiğini görebilirim, vb.

Tarihten bahsetmişken, zaman kodlarını da yazdırabilir mi?

YAN NOT : Bash'de geçmişi yazdıran basit bir betik yazdım ve onu anahtar kelimeler için grep edebilirim. Bazı komutların yerine getirildiği zamanlar görüyorum. Belirtebilirim -A nveya -B n, nerede nbir dizi satır AFTERveya BEFOREbelirli bir komut. Bu çok kullanışlıdır, çünkü ne yaptığımı, ne zaman yaptığımı ve ardından ne yaptığımı kolayca bulabilirim ...

Benzer bir şey arıyorum ipython


8
IPython, geçmişini bir history.sqlite dosyasına kaydeder ~/.ipython/profile_default/. Orada tabloları bulacaksınız: sessions(zaman damgalı) historyve output_history.
user3557327

1
@ user3557327 - içeriden ona nasıl erişebilirim ipython?
user1968963

1
İpython'un bir arayüz gösterip göstermediğini bilmiyorum, ancak ona her zaman doğrudan sqlite3 modülü ile erişebilirsiniz .
user3557327

42
%history -gsize hepsini gösterecek. -ggeçmişi arar ve ona bir model vermezseniz, her şeyi alırsınız.
Mustafa K

36
%history -g -f filenamedosyaya kaydetmek için.
Liso

Yanıtlar:


163

İçinde ipython girin:

%history -g

Zaman kodlarını yazdırmaz, ancak oturum / satır numarasını yazdırır.


26

İlk %hist -o -g -f ipython_history.mdolarak geçmişi (giriş ve çıkış) bir metin dosyasına çıkarmak için kullanın. ( http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history )

Ardından get_session_info, ilgilendiğiniz oturumun tarih ve saatini almak için işlevi kullanabilirsiniz . ( Http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.history.html?highlight= geçmiş # IPython.core.history.HistoryAccessor.get_session_info )

profile_hist=IPython.core.history.HistoryAccessor(profile='default')
profile_hist.get_session_info(100)

Bu şöyle bir şey yazdıracak

(100, datetime.datetime(2018, 2, 13, 19, 8, 30, 40691), None, None, '')

Bu, 100. oturumun 13 Şubat 2018 19:08: 30'da başladığı anlamına gelir.


0

@Larssend'in bulduğu Firefox eklentisi : SQLite Manager

Bir veritabanı dosyasını açmak ve bir menüden çeşitli sqlite komutlarını vermek için bir GUI'ye sahiptir. Çıkışı oluşturan SQL komutlarını görmenin ek avantajını elde edersiniz. İşte benim ipython için benim %historyde ~/.ipython/profile_default/history.sqlite:

görüntü açıklamasını buraya girin

Ve hatta verilerinizden grafikler (dağılım, çizgi, çubuk vb.) Oluşturmak için bir menüye sahiptir!

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.