2017-03-29 48 views
0

我想使用一个变量并将它传递给shell命令行。问题是。我不知道如何。需要帮忙。Python 2.7将变量传递给子进程命令行

def gauti(): 
    imti=tekstas.get("1.0", "end-1c") 
    subprocess.call("grep -i 'imti' /var/log/syslog > logas.txt", shell=True) 

而不是“IMTI”我需要将在Python程序交付在syslog文件中搜索一个变量。

回答

0

使用字符串格式化

subprocess.call("grep -i '{imti}' /var/log/syslog > logas.txt".format(imti=imti), 
       shell=True) 

或传递数组call方法与所有需要的部件

logas = open('logas.txt', 'a+') 
subprocess.call(['grep', '-i', imti, '/var/log/syslog'], stdout=logas)