ipython: पूरा इतिहास (केवल वर्तमान सत्र नहीं) प्रिंट करें


128

में ipython, मैं हाल के इतिहास का उपयोग %histया %historyमुद्रित कर सकता हूं , लेकिन यह केवल वर्तमान सत्र से इतिहास को प्रिंट करता है।

मैं सभी इतिहास को प्रिंट करना चाहूंगा, जैसे बैश historyकमांड करता है।

जो मैं करने की कोशिश कर रहा हूं वह पूरा इतिहास प्राप्त करने के लिए है, ताकि मैं फिर से रेगेक्स के साथ खोज कर सकूं, देखें कि निर्दिष्ट कमांड के बाद क्या कमांड का पालन किया जाता है, और इसी तरह

इतिहास की बात करें तो क्या यह टाइमकोड भी छाप सकता है?

ध्यान दें : बैश में, मैंने एक सरल स्क्रिप्ट लिखी है जो इतिहास को प्रिंट करती है और मैं इसे कीवर्ड के लिए तैयार कर सकता हूं। मैं ऐसे समय देखता हूं जब कुछ आदेशों को निष्पादित किया गया था। मैं निर्दिष्ट कर सकता हूं -A nया -B n, जहां nकई पंक्तियां AFTERया BEFOREदी गई कमांड है। यह बहुत आसान है, क्योंकि मैं आसानी से पा सकता हूं कि मैंने क्या किया, और उसके बाद क्या किया ...

मैं कुछ इसी तरह की तलाश में हूं ipython


8
IPython एक हिस्ट्री में अपना इतिहास सेव करता है ~/.ipython/profile_default/। वहां आपको टेबल मिलेंगे: sessions(टाइमस्टैम्प के साथ), historyऔर output_history
user3557327

1
@ user3557327 - मैं इसे भीतर से कैसे एक्सेस कर सकता हूं ipython?
user1968963

1
मैं नहीं जानता कि अगर ipython इसे एक इंटरफ़ेस दिखाता है, लेकिन आप इसे हमेशा sqlite3 मॉड्यूल के साथ सीधे एक्सेस कर सकते हैं ।
user3557327

42
%history -gआपको यह सब दिखाएगा। -gइतिहास खोजता है, और यदि आप इसे कोई पैटर्न नहीं देते हैं, तो आपको सब कुछ मिलता है।
थॉमस के

36
%history -g -f filenameफ़ाइल को बचाने के लिए।
लिसो

जवाबों:


163

में ipythonदर्ज करें:

%history -g

यह समय कोड नहीं प्रिंट करता है लेकिन यह प्रिंट सत्र / लाइन नंबर करता है।


26

सबसे पहले %hist -o -g -f ipython_history.mdइतिहास (इनपुट और आउटपुट) को टेक्स्ट फ़ाइल में आउटपुट करने के लिए उपयोग करें। ( http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-hISER )

फिर आप get_session_infoजिस सत्र में रुचि रखते हैं, उसके लिए दिनांक और समय को पुन: प्राप्त करने के लिए फ़ंक्शन का उपयोग कर सकते हैं । ( http://ipython.readthedocs.io/en/stable/api/generated/IPython.core.history.html?highlight= hist # IPython.core.history.HistoryAccessor.get_session_info )

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

यह कुछ इस तरह प्रिंट होगा

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

इसका मतलब है कि सत्र 100 फरवरी 2018 19:08:30 की रात को शुरू हुआ।


0

यहाँ फ़ायरफ़ॉक्स एक्सटेंशन है जो @larssend को मिला है: SQLite Manager

यह एक डेटाबेस फ़ाइल खोलने और एक मेनू से विभिन्न sqlite आदेश जारी करने के लिए एक जीयूआई है। आपको आउटपुट उत्पन्न करने वाले SQL कमांड को देखने का अतिरिक्त बोनस मिलता है। यहाँ मेरे ipython के लिए मेरा %historyहै ~/.ipython/profile_default/history.sqlite:

यहाँ छवि विवरण दर्ज करें

और यहां तक ​​कि आपके डेटा से भूखंड (स्कैटर, लाइन, बार, आदि) उत्पन्न करने के लिए भी एक मेनू है!

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.