我的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
答案 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.png
,pic_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