Frederica
Frederica

Reputation: 187

How to pass a variable as a command line argument in 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?

Upvotes: 3

Views: 870

Answers (1)

Jean-François Fabre
Jean-François Fabre

Reputation: 140168

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

Upvotes: 6

Related Questions