我有一个Python脚本,其中包含在Linux服务器上运行的以下两行代码(以及其他行):
proc = subprocess.Popen(['last', '-F'], stdout=subprocess.PIPE, shell=True)
(output, err) = proc.communicate()
当我从服务器(Linux)上的命令行运行last -F
时,一切都很棒。 -F
开关以更标准化的格式输入日期。 (它代表"完整,"我相信 - 所以今年也不会被忽略,即使它是当年。)
然而,当我运行我的脚本时,Popen绝对不会调用-F
开关。我得到的日期信息肯定不是#34;已经完整。"有谁看到这里出了什么问题?值得注意的是,我已经尝试了shell=True
和shell=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
答案 0 :(得分:0)
我明白了。我需要做的就是从调用中删除最后一个参数:
proc = subprocess.Popen(['last', '-F'], stdout=subprocess.PIPE, shell=True)
所以它是:
proc = subprocess.Popen(['last', '-F'], stdout=subprocess.PIPE)