मेरे पास निम्नलिखित है जो आईपीथन 2.0 के साथ काम करता है। मैंने देखा कि पृष्ठ की <body>
टैग में नोटबुक का नाम विशेषता 'data-notebook-name'
के मान के रूप में संग्रहीत किया जाता है। इस प्रकार विचार सबसे पहले विशेषता को पुनर्प्राप्त करने के लिए जावास्क्रिप्ट से पूछना है - जावास्क्रिप्ट को कोडसेल से %%javascript
जादू के लिए धन्यवाद दिया जा सकता है। फिर पाइथन कर्नेल को कॉल के माध्यम से जावास्क्रिप्ट चर तक पहुंच बनाना संभव है, जिसमें एक पायथन वैरिएबल सेट होता है। चूंकि यह अंतिम चर कर्नेल से ज्ञात है, इसलिए इसे अन्य कोशिकाओं में भी पहुंचा जा सकता है।
%%javascript
var kernel = IPython.notebook.kernel;
var body = document.body,
attribs = body.attributes;
var command = "theNotebook = " + "'"+attribs['data-notebook-name'].value+"'";
kernel.execute(command);
एक अजगर कोड सेल
print(theNotebook)
[] बाहर से: HowToGetTheNameOfTheNoteBook.ipynb
इस समाधान में एक दोष यह है कि जब एक एक नोटबुक के शीर्षक (नाम) बदल जाता है तो, यह नाम तुरंत अपडेट नहीं किया जा रहा है (शायद कुछ प्रकार का कैश है) और नए नाम तक पहुंच प्राप्त करने के लिए नोटबुक को फिर से लोड करना आवश्यक है।
[संपादित करें] प्रतिबिंब पर, एक अधिक कुशल समाधान नोटबुक के बजाय नाम <body>
टैग के लिए इनपुट क्षेत्र के लिए देखने के लिए है। स्रोत में देखकर, ऐसा प्रतीत होता है कि इस फ़ील्ड में आईडी "नोटबुक_नाम" है। document.getElementById()
द्वारा इस मान को पकड़ना संभव है और फिर उपरोक्त के समान दृष्टिकोण का पालन करें। कोड, हो जाता है अभी भी जावास्क्रिप्ट जादू का उपयोग कर
%%javascript
var kernel = IPython.notebook.kernel;
var thename = window.document.getElementById("notebook_name").innerHTML;
var command = "theNotebook = " + "'"+thename+"'";
kernel.execute(command);
फिर, एक IPython सेल से,
In [11]: print(theNotebook)
Out [11]: HowToGetTheNameOfTheNoteBookSolBis
पहले समाधान के विपरीत, नोटबुक के नाम का संशोधन तुरंत अपडेट किया जाता है और ताज़ा करने के लिए कोई जरूरत नहीं है किताब।
आप इसके साथ क्या करने की कोशिश कर रहे हैं? डिज़ाइन द्वारा, कर्नेल (बिट जो कोड चलाता है) को फ्रंटेंड के बारे में पता नहीं है (बिट जो नोटबुक खोलता है)। –
हाय, मैं इसे नोटबुक को लेटेक्स/पीडीएफ निर्माण प्रक्रिया में स्वचालित करने के लिए nbconvert के साथ उपयोग करना चाहता हूं। मेरी नोटबुक दूरस्थ रूप से चलती हैं। कक्षा के बाद छात्र अपने परिणामों का एक पीडीएफ संस्करण डाउनलोड कर सकते हैं। – Tooblippe