我正在使用yolov3。我创建了一个用于触发yolov3的python脚本。当这段代码有效时。该程序需要像下图一样的图像路径。我的问题是如何从python端给出这条路径并自动命中enter。
import os
commands = './darknet detector test cfg/car-obj.data car-yolov3.cfg weights/car-yolov3_50000.weights -dont_show'
os.system(commands)
看起来您并没有真正尝试与终端进行交互,而是希望与子进程的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 ...除非链中的任何程序重定向它。