我很喜欢在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