How to pass a variable to magic ´run´ function in IPython

前端 未结 4 1453
-上瘾入骨i
-上瘾入骨i 2020-12-02 11:45

I want to do something like the following:

In[1]: name = \'long_name_to_type_every_now_and_then.py\'

In[2]: %run name

but this actually tr

4条回答
  •  时光取名叫无心
    2020-12-02 12:14

    IPython expands variables with $name, bash-style. This is true for all magics, not just %run.

    So you would do:

    In [1]: filename = "myscript.py"
    
    In [2]: %run $filename
    ['myscript.py']
    

    myscript.py contains:

    import sys
    print(sys.argv)
    

    Via Python's fancy string formatting, you can even put expressions inside {}:

    In [3]: args = ["arg1", "arg2"]
    
    In [4]: %run $filename {args[0]} {args[1][-2:]}
    ['myscript.py', 'arg1', 'g2']
    

提交回复
热议问题