【问题标题】:Different to get the output between?不同的得到之间的输出?
【发布时间】: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 被调用时它会返回一些“空单元格”,然后我找不到正确拆分的方法而不跳过空单元格的结果。

标签: python linux


【解决方案1】:

是的,输出可能会有所不同。在第一种情况下,您只执行一次lsof,然后从lsof 输出中捕获值,但在第二种情况下,lsof 执行了 3 次,这可能会导致不同的输出。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-01-19
    • 2021-11-25
    • 2012-06-29
    • 1970-01-01
    • 2022-10-14
    • 2017-04-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多