请告诉我以下代码有什么问题:
def ume():
cmd = None
p = r'/myfolder/xyz'
cmd = ["who am i | awk '{print $1}'", "date"]
fh = open(p, 'ab+')
try:
b = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh)
b.wait()
fh.flush()
finally:
fh.close()
ume()
它在date
文件中没有附加xyz
输出。只是给出这个命令的输出:
(我是谁| awk'{print $ 1}'
我希望两个命令的o / p都应该用单行写入,如下所示。
mmd星期二4月19日13:25:35 UTC 2016
答案 0 :(得分:0)
如果默认shell为bash,则可以尝试以下代码:
def ume():
cmd = None
p = r'temp.txt'
cmd = ["export wai=`whoami | awk '{print $1}'`;" "export dt=`date`;" "echo $wai $dt"]
fh = open(p, 'ab+')
try:
b = subprocess.Popen(cmd, shell=True, universal_newlines=True, stdout=fh)
b.wait()
fh.flush()
finally:
fh.close()
ume()