jupyternotebook运行python,在Jupyter Notebook中运行Python脚本,并传递参数

I have this simple Python script which I run from my Jupyter Notebook. However the arguments I pass to it seemingly are ignored and this results in an exception:

two_digits.py

import sys

input = sys.stdin.read()

tokens = input.split()

a = int(tokens[0])

b = int(tokens[1])

print(a + b)

%run two_digits 3 5

ndexError Traceback (most recent call last)

D:\Mint_ns\two_digits.py in ()

5 tokens = input.split()

6

----> 7 a = int(tokens[0])

8

9 b = int(tokens[1])

IndexError: list index out of range

解决方案

You need to use sys.argv instead of sys.stdin.read():

two_digits.py

import sys

args = sys.argv # a list of the arguments provided (str)

print("running two_digits.py", args)

a, b = int(args[1]), int(args[2])

print(a, b, a + b)

command line / jupyter magic line:

%run two_digits 3 5

or, with a slightly different output:

Note: this uses a ! prefix to indicate command line to jupyter

!ipython two_digits.py 2 3

output: (using magic line %run)

running two_digits.py ['two_digits.py', '2', '3']

2 3 5

你可能感兴趣的:(jupyternotebook运行python,在Jupyter Notebook中运行Python脚本,并传递参数)