接受用户输入并同时执行python脚本

时间:2019-04-28 01:09:02

标签: python

我的python脚本名称为Neuro_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))

在命令提示符下,我必须按以下方式运行

python neural_net.py

执行上一行,然后输入

pic_0.png

它返回我的输出。 我想要的是将上述两项操作都作为单个命令来完成,例如

python neural_net.py pic_0.png

2 个答案:

答案 0 :(得分:1)

编辑: 我想我知道你为什么不开心。除了文件名之外,您还需要提供路径,您可以使用args之类的

  

python run.py“ c:/users/user/desktop/pictures/pngs/file.png”

,并使用原始答案。或者只是在代码中放置一个通用路径,然后将arg用于特定文件。

IMAGE_FOLDER = "c:/users/user/desktop/pictures/pngs/"
file = IMAGE_FOLDER + sys.argv[1]

原文:

这与Google搜索结果很直接:

CML:

    python neural_net.py pic_0.png

代码:

     import sys
     print sys.argv[1]

结果:

    "pic_0.png"

非常感谢Google和 https://www.pythonforbeginners.com/system/python-sys-argv

答案 1 :(得分:1)

在代码中使用

import sys

file = sys.argv[1] 

得到它。

现在您可以运行它

python neural_net.py pic_0.png

file将是pic_0.png


如果您使用更多参数运行

python neural_net.py pic_0.png pic_1.png pic_2.png 

然后您将得到sys.argv[2]sys.argv[3]等,值分别为pic_1.pngpic_2.png


如果您需要更复杂的溶液

script.py --input pic_0.png --output image.png 

然后查看模块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