Niedawno przeszedłem do używania notesów IPython jako części mojego przepływu pracy. Jednak nie udało mi się znaleźć sposobu na zaimportowanie plików .py do poszczególnych komórek otwartego notesu IPython, aby można je było edytować, uruchamiać, a następnie zapisywać. Czy można to zrobić?
Znalazłem to w dokumentacji, która mówi mi, jak importować pliki .py jako nowe notebooki, ale to nie jest to, co chcę osiągnąć.
Wszelkie sugestie będą mile widziane.
python
jupyter-notebook
ipython
jupyter
aaronsstack
źródło
źródło
Odpowiedzi:
Plik tekstowy można załadować do komórki notebooka za pomocą polecenia magicznego
%load
.Jeśli wykonasz komórkę zawierającą:
zawartość
filename.py
zostanie załadowana w następnej komórce. Możesz go edytować i wykonywać jak zwykle.Aby zapisać zawartość komórki z powrotem do pliku, dodaj magię komórki
%%writefile filename.py
na początku komórki i uruchom ją. Uwaga: jeśli plik o tej samej nazwie już istnieje , zostanie po cichu nadpisany .Aby zobaczyć pomoc dla każdego magicznego polecenia dodać
?
: jak%load?
albo%%writefile?
.Aby uzyskać ogólną pomoc dotyczącą funkcji magicznych, wpisz „% magic”. Aby wyświetlić listę dostępnych funkcji magicznych, użyj% lsmagic. Aby uzyskać opis dowolnego z nich, wpisz% magic_name?, Np. „% Cd?”.
Zobacz także: Funkcje magiczne z oficjalnych dokumentów IPython.
źródło
%save -f
wydaje się być sposobem na robienie tego, czego szukałem. Dzięki!save -f
jest rodzajem pośredniego sposobu zapisywania do pliku i działa tylko wtedy, gdy najpierw wykonasz komórkę, a następnie podasz odpowiednie odwołanie. Zasadniczo łatwiej jest używać,%%writefile
który zapisuje bieżącą komórkę w pliku. Zaktualizowałem odpowiedź, aby o tym wspomnieć.%loadpy
(zamiast%load
).%load
jest w porządku, w przyszłości: „%loadpy
( Alias%load
) -%loadpy
zyskało pewną elastyczność i zrezygnowało z wymogu.py
rozszerzenia. Zostało ono po prostu przemianowane na%load
Aby%load
uzyskać więcej informacji, możesz przejrzeć dokumentację . ”Aby zapisać / zapisać
%%writefile myfile.py
-a
do dołączenia). Inny alias:%%file myfile.py
Biegać
%run myfile.py
Aby załadować / zaimportować
%load myfile.py
Więcej magii i pomocy
%lsmagic
%COMMAND-NAME?
%run?
Uwaga
Oprócz magicznych poleceń komórki, notatnik IPython (teraz notatnik Jupyter) jest tak fajny, że pozwala na użycie dowolnego polecenia unix bezpośrednio z komórki (jest to również równoważne z użyciem
%%bash
magicznego polecenia komórki).Aby uruchomić polecenie unix z komórki, wystarczy poprzedzić polecenie
!
znakiem. na przykład:!python --version
zobacz swoją wersję Pythona!python myfile.py
uruchomić myfile.py i wyjściowe wyniki w bieżącej komórce, podobnie jak%run
(zobacz różnicę pomiędzy!python
i%run
w komentarzach poniżej).Zobacz także ten nbviewer, aby uzyskać dalsze wyjaśnienia z przykładami. Mam nadzieję że to pomoże.
źródło
!dir Volume in drive D is Documents
itp. Więc nie jest to tylko bash, ale także cmd!!python --version
(literówka)%run myfile.py
niż w przeciwieństwie do!python myfile.py
. Jeśli zrobisz to pierwsze, zostanie ono uruchomione przy użyciu jądra ipython, w tym niezależnie od skonfigurowanego wstępnego ładowania. Mały problem, ale dzisiaj wpadłem na błąd, który zrobił dla mnie różnicę.%run myfile.py
opisany w tej odpowiedzi, włączając w skrypcie magiczne polecenia komórki IPython, użyj%run myfile.ipy
.Przeciągnij i upuść plik Python w tabeli notesów „domowych” notesów Ipython, kliknij przycisk przesyłania. Spowoduje to utworzenie nowego notatnika z tylko jedną komórką zawierającą zawartość pliku .py
Jeszcze skopiuj / wklej z ulubionego edytora;)
źródło
Znalazłem zadowalające użycie ls i cd w ipython notebook do znalezienia pliku. Następnie wpisz cat twoja_nazwa_pliku w komórce, a otrzymasz zawartość pliku, którą następnie możesz wkleić do komórki jako kod.
źródło
!cat "file.txt"