向从Python脚本开始的程序提供输入

时间:2019-03-08 16:44:26

标签: python

我正在与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)

1 个答案:

答案 0 :(得分: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,则依次启动的任何程序 it 都将从同一程序获取其stdin。终端...除非链中的任何程序将其重定向。