Jupyter notebook'un bir hücresini nasıl dışa aktarabilirim?


10

Şu anda bir Jupyter not defterinde prototip çalışıyorum . Kodumu bir kısmını bağımsız bir iPython kabuğunda çalıştırmak istiyorum .

Şimdilik, iPython kodumu dışa aktarıyorum (dosya -> farklı indir) ve sonra iPython'umda (% run ile) çalıştırıyorum. Çalışıyor, ancak yalnızca bir hücre veya hücre kümesi vermek istiyorum. Böylece, sadece Jupyter not defterimde değiştirdiğim şeyi çalıştırabilirim .


Jupyter not defterinde olduğu gibi mantıklı olup olmayacağından emin değilim, çekirdek ipython% run komutuyla ilgili olmayan daha önce çalıştırılan komutların durumunu korur.
Rohan Sadale

3
Tek bir hücre için IPython magics kopyalayıp yapıştırabilir veya kullanabilirsiniz: 1) %% writefile, stackoverflow.com/questions/21034373/… veya 2)% save komutuna bakın, bkz. Stackoverflow.com/questions/947810/… komutu.
Valentas

1
@RohanSadale istediğim şey hem jupyter defterimde hem de ipython kabuğumda çalışmak. not defterim paylaşılmak için yapılmış ve komutun daha önce not defterimde çalışmasını istediğimde, ancak daha büyük bir veri kümesiyle ve bazı şeyleri test ettiğimde, ipython kabuğumda yaptım.
Manu H

@Valentas yorumunuz cevap olarak yeniden yazılmalıdır.
Manu H

Yanıtlar:


4

Bu yığın sorusuna bakın

Hücrenin çıktısını yakalamak için %% capture Jupyter notebook'un sihirli komutunu kullanabilir ve ardından metin dosyanıza

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

kodu code.txt gibi belirli bir dosyaya hücre olarak eklemek istiyorsanız %% writefile sihirli işlevini kullanabilirsiniz

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

Ayrıca dosyaya eklemek istiyorsanız -a parametresini kullanmalısınız


Soruyu yanlış anladığınızı düşünüyorum. Vermek istediğim bir hücrenin sonucu değil, o hücreye yazdığım kod.
Manu H

ipython.readthedocs.io/en/stable/interactive/magics.html Ardından %% writefile magic işlevini kullanabilirsiniz
R__A_a_

1

Jupyter not defterlerine sadece bir hücre vermenin mümkün olup olmadığından emin değilim .

Ama bir python dosyası olarak indirmek ve sadece yeni Jupyter dizüstü bilgisayarınıza istediğiniz belirli bir hücre yapıştırmak biliyorum .

Eğer daha fazla yardıma ihtiyacınız varsa bana bildirin!


0

Bunu yapmanın bir yolu , bir hücrenin çıktısına erişmek için Python'un çıktı önbellek sistemini kullanmaktır, böylece bir dosyaya kaydedilebilir. Numaralandırılmış bir x hücresinden çıktı, adlandırılan bir değişkende saklanır _xve son komuttan _çıktı vb. Olur. Örneğin 10 numaralı hücre çıktısını cell_10.picklepython'un turşu biçimini kullanarak bir dosyaya kaydedin :

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.