获取用户输入并同时执行 python 脚本

Tal*_*war 1 python

我有一个Python脚本名称为neural_net.py。它对 mnist 数据集进行分类。我想做的是通过命令行获取用户的输入来运行它。以下代码片段正在获取用户的输入

file=input()
from PIL import Image
im = Image.open(file).convert('L')
imr=np.array(im).T
single_test = imr.reshape(1,400)
plt.figure(figsize=(5,5))
plt.imshow(imr)
print("value is",nn.predict(single_test))
Run Code Online (Sandbox Code Playgroud)

在命令提示符下我必须按如下方式运行它

python neural_net.py
Run Code Online (Sandbox Code Playgroud)

执行上面的行,然后给出输入

pic_0.png
Run Code Online (Sandbox Code Playgroud)

它返回给我输出。我想要的是将上述两件事作为单个命令完成,例如

python neural_net.py pic_0.png
Run Code Online (Sandbox Code Playgroud)

fur*_*ras 6

在代码中使用

import sys

file = sys.argv[1] 
Run Code Online (Sandbox Code Playgroud)

为拿到它,为实现它。

现在你可以运行它

python neural_net.py pic_0.png
Run Code Online (Sandbox Code Playgroud)

并将filepic_0.png


如果您运行更多参数

python neural_net.py pic_0.png pic_1.png pic_2.png 
Run Code Online (Sandbox Code Playgroud)

那么你就会有sys.argv[2]sys.argv[3]等价值观pic_1.pngpic_2.png


如果您需要更复杂的解决方案,例如

script.py --input pic_0.png --output image.png 
Run Code Online (Sandbox Code Playgroud)

然后查看模块argparse

import argparse

parser = argparse.ArgumentParser()
parser.add_argument('-i', '--input')
parser.add_argument('-o', '--output', default='output.png')
args = parser.parse_args()

file = args.input
output_file = args.output 
Run Code Online (Sandbox Code Playgroud)