Jupyter 노트북의 한 셀을 내보내는 방법은 무엇입니까?


10

현재 Jupyter 노트북 에서 작업하고 프로토 타이핑 중 입니다. 독립형 iPython 셸 에서 일부 코드를 실행하고 싶습니다 .

지금은 iPython 코드 (파일-> 다른 이름으로 다운로드)를 내 보낸 다음 iPython 에서 실행합니다 (% run). 작동하지만 하나의 셀 또는 셀 세트 만 내보내고 싶습니다. 따라서 Jupyter 노트북 에서 수정 한 항목 만 실행할 수 있습니다 .


Jupyter 노트북에서와 같이 의미가 있는지 확실하지 않습니다. 커널은 이전에 실행 된 명령의 상태를 유지하며 ipython % run 명령의 경우에는 그렇지 않을 수 있습니다.
Rohan Sadale

3
단일 셀의 경우 1) %% writefile, stackoverflow.com/questions/21034373/… 또는 2) % save를 참조하십시오. stackoverflow.com/questions/947810/… 명령을 참조하십시오 .
Valentas

1
@RohanSadale 내가 원하는 것은 jupyter 노트북과 ipython 셸에서 모두 작동하는 것입니다. 내 노트북은 공유되도록 만들어졌으며 이전에 노트북에서 명령을 실행하지만 더 큰 데이터 세트를 사용하여 물건을 테스트하고 싶을 때 ipython 쉘에서 만들었습니다.
마누 H

@Valentas 귀하의 의견은 답변으로 다시 작성되어야합니다.
마누 H

답변:


4

이 스택 질문을 참조하십시오

%% capture Jupyter notebook의 magic 명령을 사용하여 셀의 출력을 잡아서 텍스트 파일에 붙여 넣을 수 있습니다

with open('output.txt', 'w') as out:
   out.write(cap.stdout)

code.txt와 같은 특정 파일로 코드를 셀하려면 매직 함수 %% writefile을 사용할 수 있습니다

%%writefile example.txt
ab = 'This is code'
a = 5
print(a+ 2)

또한 파일에 추가하려면 -a 매개 변수를 사용해야합니다.


나는 당신이 그 질문을 오해한다고 생각합니다. 내가 내보내려는 것은 셀의 결과가 아니라 해당 셀에 작성한 코드입니다.
Manu H

ipython.readthedocs.io/en/stable/interactive/magics.html 그러면 %% writefile 매직 기능을 사용할 수 있습니다
R__A_a_

1

Jupyter 노트북 에서 하나의 셀만 내보낼 수 있는지 확실하지 않습니다 .

그러나 파이썬 파일로 다운로드하고 새로운 Jupyter 노트북에 원하는 특정 셀을 복사하여 붙여 넣을 수 있다는 것을 알고 있습니다 .

도움이 더 필요하면 알려주십시오!


0

이를 수행 할 수있는 한 가지 방법은 Python의 출력 캐싱 시스템 을 사용하여 셀의 출력에 액세스하여 파일에 저장하는 것입니다. 번호가 매겨진 셀 x의 출력은이라는 변수에 저장되고 _x마지막 명령 _의 출력은 cell_10.pickle다음과 같습니다.

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.