subprocess.call带sed pass变量

2024-10-02 22:23:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用subprocess.call运行Python脚本,在匹配模式之后添加一行。方法如下:

addline1是变量,其值为"hello world1"

filename1是包含路径和文件名的变量,例如"/tmp/path1/filename.conf"

filename.conf中,它有35行,我想在匹配字符串"ReWriteEngine On"之后插入一行

subprocess.call(["sed","-i" ,'/ReWriteEngine On/a', addline1,filename])

失败,但以下例外:

^{pr2}$

有谁能建议改正一下吗?在


尝试使用fileinput而不是sed的代码

import fileinput
processing_foo1s = False
for line in fileinput.input('/tmp/filename1/mod_wl_ohs.conf', inplace=1):
    if line.startswith("RewriteEngine On"):
        processing_foo1s = True
    else:
        if processing_foo1s:
            print 'foo bar'
            processing_foo1s = False
            print line

Tags: falseonconflinecallfilenamesedtmp