ipython : 전체 기록 인쇄 (현재 세션뿐만 아니라)


128

에서 최근 기록을 ipython사용 %hist하거나 %history인쇄 할 수 있지만 현재 세션의 기록 만 인쇄합니다.

bash history명령 과 비슷한 모든 기록을 인쇄하고 싶습니다 .

내가하려는 것은 완전한 기록을 얻는 것이므로 정규 표현식으로 검색하고 지정된 명령 뒤에 어떤 명령이 오는지 확인할 수 있습니다.

역사에 대해 말하면 타임 코드도 인쇄 할 수 있습니까?

참고 : bash에서 나는 역사를 인쇄하는 간단한 스크립트를 작성했으며 키워드를 위해 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기록을 검색하고 패턴을 지정하지 않으면 모든 것을 얻습니다.
Thomas 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이 2018 년 2 월 13 일 19:08:30에 시작되었음을 의미합니다.


0

@larssend가 찾은 Firefox 확장 기능은 다음과 같습니다 . SQLite Manager

데이터베이스 파일을 열고 메뉴에서 다양한 sqlite 명령을 실행하기위한 GUI가 있습니다. 출력을 생성 한 SQL 명령을 보는 추가 보너스를 얻습니다. 여기 내 ipython에 대한 내 꺼야 %history에서는 ~/.ipython/profile_default/history.sqlite:

여기에 이미지 설명을 입력하십시오

그리고 데이터에서 도표 (산란, 선, 막대 등)를 생성하는 메뉴도 있습니다!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.