我喜欢在 ipython 笔记本中进行开发,但是当我想编写一个读取命令行参数的 main() 函数时遇到问题(例如,使用 OptionParser)。我希望能够将代码导出到 .py 文件并从命令行运行它,但我还没有找到一种方法让 main() 既可以在带有预定义参数的笔记本中运行,也可以从命令行运行使用 python 和命令行参数。秘诀是什么?
如果不清楚,我想做这样的事情:
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()