我使用subprocess()在python中执行linux shell命令,我想做的是读取一个文件,获取所需的信息并将其保存在一个按当前日期命名的文本文件中。阅读和所有工作正常,但我不知道如何保存文件命名为当前日期。我试着用subprocess创建一个变量,但是没有成功。
def gauti():
imti=tekstas.get("1.0", "end-1c")
subprocess.call("data=$(date +"%d_%m_%Y")", shell=True)
subprocess.call("grep -i '{imti}' /var/log/syslog > $data.txt".format(imti=imti), shell=True)
最佳答案
此代码永远无法工作:
subprocess.call("data=$(date +"%d_%m_%Y")", shell=True)
subprocess.call("grep -i '{imti}' /var/log/syslog > $data.txt".format(imti=imti), shell=True)
因为每次都会创建一个新的shell,所以$data变量不会从第一个命令传递到第二个命令。你可以这样做:
subprocess.check_call("grep -i '{}' /var/log/syslog > $(date +%d_%m_%Y.txt)".format(imti), shell=True)