我希望命令行的结果显示在标签中,现在它没有显示任何内容,如果我使用call
而不是check_output
则显示为0.
def find():
take=text.get("1.0", "end-1c")
info = subprocess.check_output("grep -i '{take}' /var/log/syslog > logs/uzklausa/$(date +%d_%m_%Y.txt)".format(take=take), shell=True)
w = Label(root, text = info)
w.pack(side=BOTTOM)
是因为我对子进程使用了错误的命令,还是因为我保存到文件中,因此无法向我显示答案。
答案 0 :(得分:1)
您的命令将其输出汇总到logs/uzklausa/20_05_2017.txt
。因此,当您手动运行时,您想要的数据不会进入屏幕,出于同样的原因,它不会被check_output()
返回。打开要传输的文件并从中读取数据,或者不要将命令输出重定向到文件。