IPython 노트북 셀에 텍스트 파일 (.py)을로드 / 편집 / 실행 / 저장하는 방법은 무엇입니까?


232

나는 최근에 워크 플로의 일부로 IPython 노트북을 사용하기로 옮겼습니다. 그러나 .py 파일을 열린 IPython 노트북의 개별 셀로 가져와 편집, 실행 및 저장할 수있는 방법을 찾지 못했습니다. 이것을 할 수 있습니까?

.py 파일을 새 전자 필기장으로 가져 오는 방법을 알려주는 설명서 에서이 내용 을 찾았 지만 달성하려는 내용이 부족합니다.

어떤 제안이라도 대단히 감사하겠습니다.


6
좋은 질문. 나는 정말로 만족스러운 답변을 보지 못했다. 인터넷을 통해 IPython 노트북을 제공 할 때 특히 중요합니다. 사람들이 (구문 강조 표시 등으로) 가져온 함수의 소스 코드를 보거나 편집하려면 현재 쉬운 방법이 없습니다. py 파일을 ipynb 파일로 변환하지 않고 열 수 있습니다.
Peter

답변:


306

편집 : IPython 3 (현재 Jupyter 프로젝트)부터 노트북에는 텍스트 파일을로드 / 편집 / 저장하는보다 편리한 대안으로 사용할 수있는 텍스트 편집기가 있습니다.

magic 명령을 사용하여 텍스트 파일을 노트북 셀에로드 할 수 있습니다 %load.

다음을 포함하는 셀을 실행하는 경우 :

%load filename.py

의 내용은 filename.py다음 셀에로드됩니다. 평소처럼 편집하고 실행할 수 있습니다.

셀 내용을 파일로 다시 저장하려면 셀 %%writefile filename.py시작 부분에 cell-magic 을 추가 하고 실행하십시오. 같은 이름의 파일이 이미 존재 하면 자동으로 덮어 쓰게 됩니다.

어떤 마술 명령에 대한 도움말을 보려면 것은 추가 ?: 같은 %load?%%writefile?.

매직 함수 유형 "% magic"에 대한 일반적인 도움말 사용 가능한 매직 함수 목록을 보려면 % lsmagic을 사용하십시오. 이에 대한 설명을 보려면 % magic_name?을 입력하십시오 (예 : '% cd?').

공식 IPython 문서의 마술 함수 도 참조하십시오 .


3
이것은 플러스 %save -f내가 찾던 것을 할 수있는 방법 인 것 같습니다. 감사!
aaronsstack

2
save -f파일에 저장하는 일종의 간접적 인 방법이며 먼저 셀을 실행 한 다음 올바른 참조를 제공하는 경우에만 작동합니다. 일반적으로 %%writefile현재 셀을 파일에 쓰는 것이 더 쉽습니다 . 이것을 언급하기 위해 답변을 업데이트했습니다.
user2304916

4
새로운 마법 명령은 현재 %loadpy(대신 %load)입니다.
AlQuemist

1
ipython.org/ipython-doc/3/interactive/magics.html 에 따르면 다음과 같이 사용하는 %load것이 좋습니다 . " %loadpy ( Alias ​​of %load )- %loadpy약간의 유연성을 얻었고 .py확장 요구 사항을 줄였습니다 . 자세한 내용 %load%loaddocstring을 참조하십시오. "
마이클

118

쓰거나 저장하려면

%%writefile myfile.py

  • 셀 내용을 myfile.py에 쓰거나 저장합니다 ( -a추가 하는 데 사용 ). 다른 별명 :%%file myfile.py

실행

%run myfile.py

  • myfile.py를 실행하고 현재 셀에 결과를 출력하십시오.

로드 / 가져 오기

%load myfile.py

  • 현재 셀에 "import"myfile.py로드

더 많은 마법과 도움

%lsmagic

  • 다른 멋진 셀 마법 명령을 모두 나열하십시오.

%COMMAND-NAME?

  • 특정 명령을 사용하는 방법에 대한 도움말 즉%run?

노트

셀 매직 명령 외에도 IPython 노트북 (현재 Jupyter 노트북)은 너무 멋져서 셀에서 바로 유닉스 명령을 사용할 수 있습니다 (이는 %%bash셀 매직 명령 을 사용하는 것과 동일합니다 ).

셀에서 유닉스 명령을 실행하려면 명령 앞에 !표시를하십시오. 예를 들면 다음과 같습니다.

  • !python --version 파이썬 버전을 참조하십시오
  • !python myfile.pymyfile.py를 실행하고 현재 셀에서 결과를 출력 %run하십시오 ( 아래 주석 !python과 의 차이점 %run참조).

또한 예제와 함께 자세한 설명 은 이 nbviewer 를 참조하십시오 . 도움이 되었기를 바랍니다.


1
고마워, 나는 Windows를 사용하고! dir, output !dir Volume in drive D is Documentsetc.를 시도했다. 그래서 그것은 bash뿐만 아니라 cmd이기도하다!
brian

1
@iamaziz 나는 당신이 의미하는 것 같아 !python --version(오타)
Alexandre

5
Aziz, 이것은 훌륭한 답변입니다. 하나의 작은 메모 : %run myfile.py와 반대로 사용하는 것은 약간 다릅니다 !python myfile.py. 전자를 수행하면 사전로드가 구성된 것을 포함하여 ipython 커널을 사용하여 실행됩니다. 작은 문제이지만 오늘 버그가 발생하여 나에게 큰 변화가있었습니다.
Tristan Reid

%run myfile.py스크립트에 IPython 셀 매직 명령을 포함시키면서이 답변 에 설명 된 것과 동일한 작업을 수행하려면을 사용하십시오 %run myfile.ipy.
Wayne

8

Ipython 노트북 "홈"노트북 테이블에 Python 파일을 끌어다 놓고 업로드를 클릭하십시오. 그러면 .py 파일 내용을 포함하는 하나의 셀만있는 새 전자 필기장이 만들어집니다.

좋아하는 편집기에서 다른 복사 / 붙여 넣기;)


1
답장을 보내 주셔서 감사하지만 게시물 본문에서 언급했듯이 매번 새 전자 필기장을 만들지 말고 기존 전자 필기장의 셀 내에서 .py 스크립트를 유지 관리하려고합니다.
aaronsstack

내가 틀렸다면 나를 고치세요 : 노트북을 텍스트 편집기로 사용하지 않겠습니까? (즉, 셀의 각 수정 사항은 .py 파일을 변경하지 않습니다). 그건 그렇고, 셀에 .py 내용을 삽입하는 기본 방법에 대한 단서가 없으며 필요할 때 항상 코드를 복사 / 붙여 넣습니다 ... 죄송합니다
Raphaël Braud

5

파일을 찾기 위해 ipython 노트북 내에서 ls와 cd를 사용하는 것이 만족 스럽다는 것을 알았습니다. 그런 다음 cat your_file_name을 셀에 입력하면 파일의 내용을 다시 가져와 코드에 셀에 붙여 넣을 수 있습니다.


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