为从Python脚本启动的程序提供输入

问题描述 投票:0回答:1

我正在使用yolov3。我创建了一个用于触发yolov3的python脚本。当这段代码有效时。该程序需要像下图一样的图像路径。我的问题是如何从python端给出这条路径并自动命中enter。

enter image description here

import os

commands = './darknet detector test cfg/car-obj.data car-yolov3.cfg weights/car-yolov3_50000.weights -dont_show'
os.system(commands)
python
1个回答
0
投票

看起来您并没有真正尝试与终端进行交互,而是希望与子进程的stdin进行交互。默认情况下,该文件句柄附加到终端[1],但您也可以将它附加到Python脚本可以写入的FIFO中。

使用现代Python 3工具(subprocess.run()input参数),这可能看起来像:

import subprocess
p = subprocess.run(['./darknet', 'detector', 'test',
                    'cfg/car-obj.data', 'car-yolov3.cfg', 'weights/car-yolov3_50000.weights',
                    '-dont_show'], input='Image Path\n')

[1] - 嗯,它继承自启动它的程序,所以如果你在终端中启动Python,它依次启动的任何程序都会从​​同一个终端获取它的stdin ...除非链中的任何程序重定向它。

© www.soinside.com 2019 - 2024. All rights reserved.