将 Fabric 命令的输出保存在列表中,其中每一行都是一个列表元素

Save output of a Fabric command in a list, where each row is a list element

是否可以获取列表作为 Fabric 命令的输出?

类似于 ls -la(但它可以是任何命令),其中每一行都保存为列表的一个条目;这样我以后就可以循环使用它了:

mylist=[]
mylist=run('ls -la')

for each item in mylist:
    print item

像现在一样,命令的输出被发送到列表,一次一个字符,导致完全无法管理。

我正在使用 Fabric,因为我 运行 在远程机器上执行这些命令

"run"的输出其实是一个"string"(fabric.operations._AttributeString),可以使用rsplit方法将输出拆分成list

的格式
from fabric.api import *

mylist = run("ls -al").rsplit("\n")
for item in mylist:
    print item

不过,上面的代码使用“\n”作为行分隔符,可以覆盖大部分情况,但是也有一些平台使用“\r”作为行分隔符,你需要小心处理。