2014-12-03 43 views
0

當你在文本編輯器中編寫代碼時,有沒有辦法「綁定」魔術?例如,如果我想在文檔的3行上執行%timeit,然後想要立即運行整個文件,是否有限制%timeit的「範圍」的方法?冠層編輯器:控制細胞分界?或者:如何將魔術應用於文件中的幾行?

例如,假設我有這樣我的文本編輯器文件中:

print "hello world" 
%%timeit 
print "I want to time this command when I run this file!" 
print "this one too!" 

print """but I want the timer to stop before this command runs, 
      even when I run the whole file. """ 

有什麼建議?是否有一個神奇的命令來結束一個單元並開始另一個單元?

謝謝!

(這是在長文件中%%用Cython命令非常有用。)

回答

1

你可以清楚地知道這一點,但備案,標準的解決方案是使用一個分析器。我建議line_profiler,它可以預先爲Canopy訂閱者提供,或者您可以自己構建(如果您使用的是Windows,則這不是微不足道的)。

我也將ipython標籤添加到您的問題。魔術命令不能直接在Python源文件中使用,但可能調用IPython本身可能會提供解決方案;如果是這樣,監視ipython標籤的人可能會知道如何。

+0

謝謝喬納森!是的,line_profiler確實爲時機工作 - 我最想要的用例是編譯文檔中的cython函數。 '''%% cython'''魔法真好!關於co co魔法的能力,冠層很奇怪,因爲如果你在編輯器中點擊「運行」,它會將它傳送到一個交互式的ipython會話中,這樣魔術就可以工作。唯一的問題是,如果我在完整文檔上運行,我無法弄清楚如何分隔單元格。但是,謝謝! – 2014-12-03 16:33:59

+0

設計(和我認爲的實際功能)是運行命令總是運行完整文件(使用IPython的%運行魔術),而運行選擇命令將當前選擇作爲要執行的命令粘貼到shell中。 – 2014-12-07 02:03:44

相關問題