无法逐行读取子进程输出
failed to read subprocess Output line by line
我是 'subprocess' 函数的新手,想在 python 代码中读取命令 运行 的输出。
当我逐行 运行 我的代码在 python 下时似乎没有问题出现,但是当我 运行 它在 bash 中输入 'python test.py'(test.py 是我的代码被打包的地方)它最终只有 b''
并且 'head' 命令的结果没有显示。
import subprocess
pro = subprocess.Popen("sed 's/A/N/g *.txt | head Quelle1.txt'", shell=True,stdout=subprocess.PIPE)
content = pro.stdout.readlines()
for line in content:
print(list)
任何帮助将不胜感激!!!
您看到空输出是因为进程已在新进程中启动但可能尚未完成 (subprocess.Popen)。当您逐行执行所有操作时 - 您粘贴命令的速度比它们执行的速度慢。
更好的方法-查看解决方案here
想法是包裹在“with”结构中
with subprocess.Popen(...) as p:
pass # your code here
我是 'subprocess' 函数的新手,想在 python 代码中读取命令 运行 的输出。
当我逐行 运行 我的代码在 python 下时似乎没有问题出现,但是当我 运行 它在 bash 中输入 'python test.py'(test.py 是我的代码被打包的地方)它最终只有 b''
并且 'head' 命令的结果没有显示。
import subprocess
pro = subprocess.Popen("sed 's/A/N/g *.txt | head Quelle1.txt'", shell=True,stdout=subprocess.PIPE)
content = pro.stdout.readlines()
for line in content:
print(list)
任何帮助将不胜感激!!!
您看到空输出是因为进程已在新进程中启动但可能尚未完成 (subprocess.Popen)。当您逐行执行所有操作时 - 您粘贴命令的速度比它们执行的速度慢。
更好的方法-查看解决方案here
想法是包裹在“with”结构中
with subprocess.Popen(...) as p:
pass # your code here