我有一個我定義的python腳本:
def main():
parser = argparse.ArgumentParser()
parser.add_argument('--task', type=str)
parser.add_argument('--scale', type=int)
args = parser.parse_args()
... # Do things with my arguments
if __name__ == '__main__':
main()
我在命令列上呼叫這個腳本:
python myscript.py --task mytask --scale 1
我想在 jupyter notebook 中呼叫這個腳本。有沒有辦法決議引數而不修改我的腳本?即,做一些看起來像這樣的事情:
import myscript
myscript.main(--task=mytask,scale=1)
PS:我嘗試使用諸如%run(這可能也適用于我的情況)之類的魔術線,但是我在收集腳本的回傳時遇到了麻煩。
uj5u.com熱心網友回復:
你可以傳遞args給parser.parse_args:
# myscript.py
import argparse
def main(args=None):
parser = argparse.ArgumentParser()
parser.add_argument('--task', type=str)
parser.add_argument('--scale', type=int)
args = parser.parse_args(args=args)
print("task is: ", args.task)
print("scale is: ", args.scale)
if __name__ == "__main__":
main()
來自 cli 的輸出:
python3 myscript.py --task aaa --scale 10
# task is: aaa
# scale is: 10
蟒蛇的輸出
import myscript
myscript.main("--task aaa --scale 10".split())
# task is: aaa
# scale is: 10
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/446044.html
標籤:Python 解析 jupyter-笔记本
上一篇:如何逐步決議資料Python?
