ipython: พิมพ์ประวัติที่สมบูรณ์ (ไม่ใช่เฉพาะเซสชันปัจจุบัน)


128

ในipythonฉันสามารถใช้%histหรือ%historyพิมพ์ประวัติล่าสุด แต่จะพิมพ์ประวัติจากเซสชันปัจจุบันเท่านั้น

ฉันต้องการพิมพ์ประวัติทั้งหมดคล้ายกับhistoryคำสั่งbash

สิ่งที่ฉันพยายามทำคือการรับประวัติที่สมบูรณ์เพื่อให้ฉันสามารถค้นหาด้วย regex ดูคำสั่งที่ตามหลังคำสั่งที่ระบุและอื่น ๆ

เมื่อพูดถึงประวัติศาสตร์สามารถพิมพ์ลงเวลาได้หรือไม่

หมายเหตุด้าน : ในทุบตีฉันได้เขียนสคริปต์ง่าย ๆ ที่พิมพ์ประวัติและฉันสามารถ grep สำหรับคำหลัก ฉันเห็นเวลาที่คำสั่งบางอย่างถูกดำเนินการ ฉันสามารถระบุ-A nหรือ-B nที่ไหนnจำนวนบรรทัดAFTERหรือBEFOREคำสั่งที่กำหนด มันมีประโยชน์มากเพราะฉันสามารถค้นหาสิ่งที่ฉันทำเมื่อใดและสิ่งที่ตามมา ...

ฉันกำลังมองหาบางสิ่งที่คล้ายกัน ipython


8
IPython บันทึกประวัติศาสตร์ในไฟล์ history.sqlite ~/.ipython/profile_default/ใน ในนั้นคุณจะพบตาราง: sessions(ที่มีการประทับเวลา) และhistory output_history
user3557327

1
@ user3557327 - ฉันจะเข้าถึงจากภายในได้ipythonอย่างไร
user1968963

1
ผมไม่ทราบว่าถ้า ipython แสดงอินเตอร์เฟซที่ไป แต่คุณก็สามารถเข้าถึงได้โดยตรงกับโมดูล sqlite3
user3557327

42
%history -gจะแสดงให้คุณเห็นทั้งหมด -gค้นหาประวัติและถ้าคุณไม่มีรูปแบบคุณจะได้ทุกอย่าง
โทมัส K

36
%history -g -f filenameเพื่อบันทึกลงในไฟล์
Liso

คำตอบ:


163

ในการipythonป้อน:

%history -g

มันไม่ได้พิมพ์รหัสเวลา แต่จะพิมพ์เซสชั่น / หมายเลขบรรทัด


26

ใช้งานครั้งแรก%hist -o -g -f ipython_history.mdเพื่อแสดงประวัติ (อินพุตและเอาต์พุต) ไปยังไฟล์ข้อความ ( http://ipython.readthedocs.io/en/stable/interactive/magics.html#magic-history )

จากนั้นคุณสามารถใช้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 เริ่มต้นในวันที่ 13 กุมภาพันธ์ 2018 19:08:30


0

นี่คือส่วนขยายของ Firefox ที่พบ@larssend : SQLite Manager

มันมี GUI สำหรับการเปิดไฟล์ฐานข้อมูลและการออกคำสั่ง sqlite ต่างๆจากเมนู คุณจะได้รับโบนัสเพิ่มเมื่อเห็นคำสั่ง SQL ที่สร้างผลลัพธ์ นี่คือของฉันสำหรับ ipython ของฉัน%historyใน~/.ipython/profile_default/history.sqlite:

ป้อนคำอธิบายรูปภาพที่นี่

และมันยังมีเมนูสำหรับสร้างแปลง (กระจายเส้นแถบ ฯลฯ ) จากข้อมูลของคุณ!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.