一种方法是lines = p.readlines()
改用。这将读取的不是一个,而是输出中的所有行,并将它们作为字符串列表返回。但是,os.popen
您可能希望使用较新的子流程模块的相应功能来代替。
您可以使用"".join(lines)
将字符串列表连接到单个字符串。由于这些行仍然具有其原始行结束符,因此您可以仅用""
作分隔符。或者,您可以strip
使用行尾字符并使用您自己的分隔符:"\n".join([l.strip() for l in lines])
.
另外,请注意,您根本没有将输出分配给变量a
,而只是以这种方式打印。此外,根据您要对颜色值执行的操作,最好将它们分开并将它们分配给不同的变量。
更新:仔细检查后,似乎并非所有的输出都是以grabc
这种方式捕获的,无论subprocess
是在做grabc > some_file
. 十六进制字符串被捕获,但颜色元组未被捕获。但是,您可以轻松地将一个值转换为另一个值,因此这应该不是问题。
h = "#a7bd7a"
t = 167,189,122
"#%02x%02x%02x" % t # color tuple to hex string
[int(h[i:i+2], 16) for i in range(1, len(h), 2)] # hex string to color tuple