subprocess.run(['python', '/path/to/other_directory/other_code.py', 'arg1', 'arg2'], capture_output=True, text=True) 传参 只能传名称 无法传内容
时间: 2024-01-16 21:02:05 浏览: 217
subprocess.h::ant:适用于C和C ++的单头进程启动解决方案
对不起,我之前的回答有误导。`subprocess.run()` 函数可以传递参数内容,不仅仅是参数的名称。以下是正确的方式来传递参数内容:
```python
import subprocess
import json
# 参数内容
arg1 = "value1"
arg2 = "value2"
# 构造命令列表
command = ['python', '/path/to/other_directory/other_code.py', arg1, arg2]
# 运行其他目录的 Python 文件并传递参数
result = subprocess.run(command, capture_output=True, text=True)
# 获取输出
output = result.stdout
# 打印输出
print(output)
```
在这个例子中,`arg1` 和 `arg2` 是参数的内容,而不仅仅是参数的名称。然后,我们将这些参数内容添加到了 `command` 列表中,作为要运行的 Python 文件的命令行参数。这样,运行 `subprocess.run(command)` 就能正确地传递参数内容给其他目录的 Python 文件了。
请注意,传递给 `subprocess.run()` 的参数必须是字符串类型。如果要传递 JSON 参数,你可以使用 `json.dumps()` 将 JSON 对象转换为字符串,并在其他 Python 文件中使用 `json.loads()` 将其解析回 JSON 对象。
阅读全文