Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass a variable as a command line argument in iPython?

Tags:

python

ipython

For example, I have a Python module and a iPython module,

cmd.py

import sys
print sys.argv

test.ipynb

for i in range(5):
   %run cmd.py i

When I run test.ipynb, it just print ['cmd.py', 'i'] multiple times. How can I pass the value of i instead of 'i' as a command line argument?

like image 575
Frederica Avatar asked Sep 20 '26 22:09

Frederica


1 Answers

the shell mode interprets everything literally (else cmd.py would be evaluated as well). I would just do:

for i in range(5):
   %run cmd.py $i

from http://ipython.readthedocs.io/en/stable/interactive/reference.html

IPython also allows you to expand the value of python variables when making system calls. Wrap variables or expressions in {braces}:

For simple cases, you can alternatively prepend $ to a variable name

like image 116
Jean-François Fabre Avatar answered Sep 23 '26 11:09

Jean-François Fabre