我想创建一个使用
subprocess.run()
在 python 中执行以下命令的方法
python3 detect_wrong.py --source overpass.mp4 --weights ./my_coco.pt --data ./data/my_coco.yaml
subprocess.run(["python","detect_wrong.py"])
卡在这一步了。我想知道如何传递这些论点。
如此处所述:https://docs.python.org/3/library/subprocess.html,您可以在数组中添加通常在命令行中传递的每个参数。
例如,如果你想运行
ls -l --color=auto
,你可以写:
subprocess.run(["ls", "-l", "--color=auto"])
在这里,那就是:
subprocess.run(["python3", "detect_wrong.py", "--source", "overpass.mp4", "--weights", "./my_coco.pt", "--data", "./data/my_coco.yaml"])
但是,既然你想从 Python 运行 Python 脚本,我建议你看这里:我怎样才能让一个 python 文件运行另一个? .
否则,您可以使用 detect_wrong.py
运行它,或者,如果绝望,使用
exec()
或
os.system()
你可以简单地将参数作为列表中的实体传递,就像这样:subprocess.run()
要使用Python中的
python3 detect_wrong.py --source overpass.mp4 --weights ./my_coco.pt --data ./data/my_coco.yaml
,可以修改之前的示例代码如下:
subprocess
在此代码中,命令被指定为一个列表,其中每个元素代表命令的一部分及其参数。第一个元素是 import subprocess
command = ['python3', 'detect_wrong.py', '--source', 'overpass.mp4', '--weights', './my_coco.pt', '--data', './data/my_coco.yaml']
subprocess.run(command)
指定 Python 解释器,然后是 'python3'
表示脚本名称,然后是命令行参数和
'detect_wrong.py'
.
确保根据您的具体用例调整命令和参数,包括所用文件的正确路径。
只需在 subprocess.run 列表中附加参数
--source