Python Popen无法识别命令行开关

时间:2018-05-19 04:30:10

标签: python popen

我有一个Python脚本,其中包含在Linux服务器上运行的以下两行代码(以及其他行):

proc = subprocess.Popen(['last', '-F'], stdout=subprocess.PIPE, shell=True)
(output, err) = proc.communicate()

当我从服务器(Linux)上的命令行运行last -F时,一切都很棒。 -F开关以更标准化的格式输入日期。 (它代表"完整,"我相信 - 所以今年也不会被忽略,即使它是当年。)

然而,当我运行我的脚本时,Popen绝对不会调用-F开关。我得到的日期信息肯定不是#34;已经完整。"有谁看到这里出了什么问题?值得注意的是,我已经尝试了shell=Trueshell=False,但-F选项似乎无论如何都没有生效。

- 编辑 -

我得到的输出类型:

mlecoz   pts/4        10.31.202.4      Sat May 19 13:46   still logged in

我想要的输出类型(对于解析原因很重要):

mlecoz   pts/4        10.31.202.4      Sat May 19 13:46:34 2018   still logged in

1 个答案:

答案 0 :(得分:0)

我明白了。我需要做的就是从调用中删除最后一个参数:

proc = subprocess.Popen(['last', '-F'], stdout=subprocess.PIPE, shell=True)

所以它是:

proc = subprocess.Popen(['last', '-F'], stdout=subprocess.PIPE)