【发布时间】:2013-12-03 09:38:43
【问题描述】:
获取下一个命令之间的输出可能会有所不同:
lsof_list = commands.getoutput('lsof | awk \'{print $1,$2,$5}\')
或:
lsof_list1 = commands.getoutput('lsof | awk \'{print $1}\')
lsof_list2 = commands.getoutput('lsof | awk \'{print $2}\')
lsof_list5 = commands.getoutput('lsof | awk \'{print $5}\')
lsof_list = [lsof_list1, lsof_list2, lsof_list5]
当然,行将是列,反之亦然,但我主要怀疑的是数据,在代码工作期间可能会有不同数量的打开文件?
可以肯定的是,在 Python 中是否有任何函数可以同时执行几个命令?
【问题讨论】:
-
代码高亮是你的朋友。您在所有示例中都缺少尾随单引号 (
')。 -
启动新进程的绝对事实可能会改变
lsof的输出...所以第一个示例是正确的...而您的第二个示例毫无意义...您是什么实际上试图做 - 这个问题的原因是什么 - 这个例子没有帮助:) -
我正在制作一个函数来将来自 lsof 的数据保存在数据库中,第一个问题是当有一些空白空间时。
-
@JohnSnow “空白空间”是什么意思?运行相同的命令 3 次并将其重新组合在一起如何解决该问题?听起来您想先在处理数据方面做一些额外的工作......
-
@JonClements 我的意思是当 lsof 被调用时它会返回一些“空单元格”,然后我找不到正确拆分的方法而不跳过空单元格的结果。