我很喜歡在ipython筆記本里面開發,但是當我想寫一個main()函數來讀取命令行參數(例如OptionParser)時,我遇到了一個問題。我希望能夠將代碼導出到.py文件並從命令行運行它,但是我還沒有找到一種方法來讓main()在筆記本中使用預定義的參數或從命令行運行與python和命令行參數。什麼祕密?ipython筆記本中的OptionParser?
在這種不明確的情況下,我願做這樣的事情:
if __name__ == '__main__':
# if in the notebook
vals = {'debug':True, 'tag_file': 't.tags'}
options = Object()
for k,v in vals.items():
options.setattr(k,v)
args = 'fname1.txt'
# if running as a command line python script
from optparse import OptionParser
parser = OptionParser()
parser.add_option('-d','--debug',action='store_true',dest='debug')
parser.add_option('-t','--tags',action='store',dest='tag_file')
options,args = parser.parse_args()
我確定。如何測試我是否在IPython中?在命令行運行時,我將使用python,而不是ipython。 – user1427057
謝謝,鑑於此提示,我通過編寫in_ipython()函數(從stackoverflow文章)找到答案。我在這裏重新發布代碼:直列'高清in_ipython(): 嘗試: __IPYTHON__ 除了NameError: 返回False 其他: 返回TRUE; – user1427057