将两个变量输出连接成一行python3

时间:2018-01-27 11:07:09

标签: python python-3.x

我有两个变量来保存使用subprocess输出的输出,并希望将两个变量的输出打印成一行。 以下是详细信息..

cmd1=subprocess.Popen("some_command", shell=True, stdout=subprocess.PIPE)
cmd_input1=cmd1.stdout.read().decode('utf8')

cmd_input1 has:

one
two
three
four


cmd2=subprocess.Popen("othere_command", shell=True, stdout=subprocess.PIPE)
cmd_input2=cmd2.stdout.read().decode('utf8')

while cmd_input2 has :
1
2
3
4

我需要将两个变量的打印输出分成一行,下面的行。

one   1
two   2
three 3
four  4

我在下面试过但没有工作..我刚开始学习python ..

print("%  %." % (cmd_input1, cmd_input2)

它的python3,请指导..

2 个答案:

答案 0 :(得分:3)

您可能希望使用zip()内置函数混合两个列表,并split()将输出拆分为字符串列表。

Zip会列出元组列表:

[('one', 1), ('two', 2), ('three', 3), ('four', 4)]

然后你需要打印出来。这是完整的代码:

zipped = zip(cmd_input1.split('\n'), cmd_input2.split('\n'))
for line in zipped:
    print(line[0], line[1])

答案 1 :(得分:0)

您可以通过将两个输出分成行并zip ping它们来同时迭代这两个输出:

for out1, out2 in zip(cmd_input1.splitlines(), cmd_input2.splitlines()):
    print(out1.ljust(5), out2)

我还使用str.ljust来对齐输出。