1 つの方法は、lines = p.readlines()
代わりに使用することです。これは、出力から 1 行ではなくすべての行を読み取り、それらを文字列のリストとして返します。ただし、代わりに、新しいsubprocessモジュールos.popen
の対応する関数を使用したい場合があります。
"".join(lines)
文字列のリストを単一の文字列に結合するために使用できます。行には元の行末文字が残っているため""
、区切り文字として使用できます。strip
または、行末文字を使用して、独自の区切り文字を使用することもできます: "\n".join([l.strip() for l in lines])
.
また、出力を変数にまったく割り当てず、そのように出力するだけであることに注意してくださいa
。さらに、色の値で何をしたいかによっては、それらを分けたままにして、代わりに別の変数に割り当てる方がよい場合があります。
更新:よく調べてみると、 のすべての出力がgrabc
この方法でキャプチャされてsubprocess
いるわけではないようgrabc > some_file
です。16 進文字列はキャプチャされますが、色のタプルはキャプチャされません。ただし、ある値を別の値に簡単に変換できるため、これは問題になりません。
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