Python subprocess readlines()?(Python子进程readlines()?)
问题描述
所以我正在尝试按照用户指南的建议从 os.popen 转移到 subprocess.popen.我遇到的唯一麻烦是我似乎找不到使 readlines() 工作的方法.
So I'm trying to move away from os.popen to subprocess.popen as recommended by the user guide. The only trouble I'm having is I can't seem to find a way of making readlines() work.
原来我能做到
list = os.popen('ls -l').readlines()
但我做不到
list = subprocess.Popen(['ls','-l']).readlines()
推荐答案
配合subprocess.Popen
,使用communicate
读写数据:
out, err = subprocess.Popen(['ls','-l'], stdout=subprocess.PIPE).communicate()
然后,您始终可以使用 splitlines()
从进程的 stdout
中拆分字符串.
Then you can always split the string from the processes' stdout
with splitlines()
.
out = out.splitlines()
这篇关于Python子进程readlines()?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!