Saya baru-baru ini pindah menggunakan notebook IPython sebagai bagian dari alur kerja saya. Namun, saya belum berhasil menemukan cara untuk mengimpor file .py ke dalam sel individual notebook IPython yang terbuka sehingga mereka dapat diedit, dijalankan, dan disimpan. Bisakah ini dilakukan?
Saya menemukan ini di dokumentasi yang memberi tahu saya cara mengimpor file .py sebagai buku catatan baru tetapi ini kurang dari apa yang ingin saya capai.
Setiap saran akan sangat dihargai.
python
jupyter-notebook
ipython
jupyter
aaronsstack
sumber
sumber
Jawaban:
File teks dapat dimuat dalam sel buku catatan dengan perintah ajaib
%load
.Jika Anda menjalankan sel yang mengandung:
konten
filename.py
akan dimuat di sel berikutnya. Anda dapat mengedit dan menjalankannya seperti biasa.Untuk menyimpan konten sel kembali ke file, tambahkan keajaiban sel
%%writefile filename.py
di awal sel dan jalankan. Berhati-hatilah bahwa jika file dengan nama yang sama sudah ada maka akan ditimpa secara diam-diam .Untuk melihat bantuan untuk perintah sihir, tambahkan
?
: like%load?
atau%%writefile?
.Untuk bantuan umum tentang fungsi sulap, ketik "% magic" Untuk daftar fungsi sulap yang tersedia, gunakan% lsmagic. Untuk deskripsi salah satunya, ketikkan% magic_name ?, misalnya '% cd?'
Lihat juga: Fungsi sulap dari dokumen IPython resmi.
sumber
%save -f
tampaknya menjadi cara untuk melakukan apa yang saya cari. Terima kasih!save -f
adalah semacam cara tidak langsung menyimpan ke dalam file dan hanya akan berfungsi jika Anda mengeksekusi sel terlebih dahulu dan kemudian memberikan referensi yang tepat. Secara umum lebih mudah digunakan untuk%%writefile
menulis sel saat ini ke dalam file. Saya memperbarui jawaban untuk menyebutkan ini.%loadpy
(bukan%load
).%load
tidak apa-apa, maju: "%loadpy
( Alias of%load
) -%loadpy
telah mendapatkan beberapa fleksibilitas dan menjatuhkan persyaratan.py
perpanjangan. Jadi, itu telah diubah namanya menjadi%load
Anda dapat melihat%load
docstring untuk info lebih lanjut. "Untuk menulis / menyimpan
%%writefile myfile.py
-a
untuk menambahkan). Alias lain:%%file myfile.py
Untuk berlari
%run myfile.py
Untuk memuat / mengimpor
%load myfile.py
Untuk lebih banyak sihir dan bantuan
%lsmagic
%COMMAND-NAME?
%run?
Catatan
Di samping perintah sihir sel, notebook IPython (sekarang notebook Jupyter) sangat keren sehingga memungkinkan Anda untuk menggunakan perintah unix langsung dari sel (ini juga setara dengan menggunakan
%%bash
perintah sihir sel).Untuk menjalankan perintah unix dari sel, cukup awali perintah Anda dengan
!
tanda. sebagai contoh:!python --version
lihat versi python Anda!python myfile.py
jalankan myfile.py dan hasil output di sel saat ini, sama seperti%run
(lihat perbedaan antara!python
dan%run
di komentar di bawah).Juga, lihat nbviewer ini untuk penjelasan lebih lanjut dengan contoh-contoh. Semoga ini membantu.
sumber
!dir Volume in drive D is Documents
dll ... Jadi bukan hanya bash tetapi cmd juga!!python --version
(salah ketik)%run myfile.py
sebagai lawan!python myfile.py
. Jika Anda melakukan yang pertama itu akan dijalankan menggunakan kernel ipython, termasuk preloading apa pun yang dikonfigurasi. Masalah kecil, tapi saya bertemu bug hari ini di mana itu membuat perbedaan bagi saya.%run myfile.py
dijelaskan dalam jawaban ini sambil menyertakan perintah sihir sel IPython dalam skrip Anda, gunakan%run myfile.ipy
.Seret dan jatuhkan file Python di tabel notebook "home" notebook Ipython, klik unggah. Ini akan membuat buku catatan baru dengan hanya satu sel yang berisi konten file .py Anda
Salin / tempelkan yang lain dari editor favorit Anda;)
sumber
Saya merasa puas menggunakan ls dan cd di dalam notebook ipython untuk menemukan file. Kemudian ketik cat your_file_name ke dalam sel, dan Anda akan mendapatkan kembali konten file, yang kemudian dapat Anda tempelkan ke sel sebagai kode.
sumber
!cat "file.txt"