subprocess.run()不返回预期的输出[关闭]

Posted

技术标签:

【中文标题】subprocess.run()不返回预期的输出[关闭]【英文标题】:subprocess.run() doesn't return the expected output [closed] 【发布时间】:2022-01-22 17:13:47 【问题描述】:

我正在尝试在 python 中执行一个 shell 脚本,但我没有得到预期的结果

脚本.sh

#!/bin/bash
file1=$1
file2=$2
cat $file1 $file2

蟒蛇:

print(sp.run(/path/script.sh + " text1.txt text2.txt", shell=True, check=True, text=True, capture_output=True))

如果我在终端上运行脚本结果是正确的,我会加入这两个文件。 但是如果我运行 python 代码,它似乎什么都不做。

【问题讨论】:

/path/script.sh 不是有效的 Python 文字。 【参考方案1】:

以下 sn-p 应该适合你:

import subprocess as sp

file_name = "path/to/script.sh"
file1 = "path/to/file1"
file2 = "path/to/file2"

output = sp.run([file_name, file1, file2], check=True, text=True, capture_output=True)
print(output.stdout)

【讨论】:

以上是关于subprocess.run()不返回预期的输出[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何抑制或捕获 subprocess.run() 的输出?

subprocess模块

subprocess

将 subprocess.run 输出重定向到 jupyter notebook 的

subprocess.run()参数编码

python 利用subprocess调用cmd命令程序,并正确输出控制台的输出中文