如何在python子进程中传递参数?

yhived7q  于 2023-05-19  发布在  Python
关注(0)|答案(4)|浏览(158)

我想创建一个方法,在python中使用subprocess.run()执行下面的命令
python3 detect_wrong.py --source overpass.mp4 --weights ./my_coco.pt --data ./data/my_coco.yaml
subprocess.run(["python","detect_wrong.py"])
我卡在这一步了。我想知道如何传递这些参数。

fivyi3re

fivyi3re1#

如下所述: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脚本,我建议你看一下这里:How can I make one python file run another?,并且,如那里所述,如果可能的话,将detect_wrong.py视为模块。否则,您可以使用exec()运行它,或者如果需要,使用os.system()subprocess.run()运行它

ui7jx7zq

ui7jx7zq2#

你可以简单地将参数作为列表中的实体传递,如下所示:

subprocess.run(["python", "--argument=value", "detect_wrong.py"]
llew8vvj

llew8vvj3#

要使用Python中的subprocess模块执行python3 detect_wrong.py --source overpass.mp4 --weights ./my_coco.pt --data ./data/my_coco.yaml命令,可以修改前面的示例代码如下:

import subprocess

command = ['python3', 'detect_wrong.py', '--source', 'overpass.mp4', '--weights', './my_coco.pt', '--data', './data/my_coco.yaml']
subprocess.run(command)

在此代码中,命令被指定为列表,其中每个元素表示命令的一部分及其参数。第一个元素是'python3',用于指定Python解释器,然后是'detect_wrong.py',用于指示脚本名称,然后是命令行参数--sourceoverpass.mp4--weights./my_coco.pt--data./data/my_coco.yaml
确保根据您的特定用例调整命令和参数,包括所用文件的正确路径。

wydwbb8l

wydwbb8l4#

只需在www.example.com的列表中添加参数subprocess.run

subprocess.run(["python","detect_wrong.py","--source=overpass.mp4", "--weights=./my_coco.pt", "--data=./data/my_coco.yaml"])

相关问题