我使用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)

09-25 19:15