import subprocess
import tempfile
fd = tempfile.NamedTemporaryFile()
print(fd)
print(fd.name)
p = subprocess.Popen("date", stdout=fd).communicate()
print(p[0])
fd.close()
返回:
<open file '<fdopen>', mode 'w' at 0x7fc27eb1e810>
/tmp/tmp8kX9C1
None
相反,我希望它返回类似的内容:
Tue Jun 23 10:23:15 CEST 2015
我尝试添加mode="w"
以及delete=False
,但无法成功实现。
答案 0 :(得分:0)
除非stdout=PIPE
; <{1}}代码中始终为p[0]
。
要将命令输出为字符串,可以使用None
:
check_output()
check_output()
uses stdout=PIPE
and .communicate()
internally
要读取文件的输出,您应该在文件对象上调用#!/usr/bin/env python
from subprocess import check_output
result = check_output("date")
:
.read()