【发布时间】:2020-04-30 21:31:17
【问题描述】:
我正在使用来自subprocess 的Popen 构造函数来捕获我在python 脚本中运行的命令的输出:
import os
from subprocess import Popen, PIPE
p = Popen(["my-cli", "ls", "/mypics/"], stdin=PIPE, stdout=PIPE,stderr=PIPE)
output, err = p.communicate()
print(output)
print(output.count('jpg'))
我的目标是将输出文件名保存为字符串数组。
但是,当我打印output 时,我注意到脚本不是将文件名保存为字符串,而是将每个文件的每个字节(字母)保存为字符串。因此,打印输出如下所示
f
我
l
电子
.
j
p
g
1
所以不是打印一个文件名file.jpg,而是打印出组成文件名的 8 个单独字符。但是直接在终端中运行ls 命令只会逐行列出文件名。
我在这个脚本中做错了什么,这里的解决方法是什么?我正在运行 Python 2.7 任何建议将不胜感激
【问题讨论】:
标签: python subprocess popen