是否可以将列表作为Fabric命令的输出?
类似于ls -la(但它可以是任何命令),其中每一行都保存为列表的条目;所以我可以在以后循环使用它:
mylist=[]
mylist=run('ls -la')
for each item in mylist:
print item
现在,命令的输出被发送到列表,一次一个char,导致一些完全无法管理的事情。
我正在使用Fabric,因为我在远程计算机上运行这些命令
答案 0 :(得分:2)
“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”作为行分隔符,您需要处理小心。