Python sed错误:sed:-e表达式#1,字符22:unterminated`s';命令

Python sed错误:sed:-e表达式#1,字符22:unterminated`s';命令,python,sed,os.system,Python,Sed,Os.system,我使用os.system在python内部运行sed命令。下面是代码 os.system("sed -i /solid/s/Visualization Toolkit generated SLA File/chestwall/g mesh1.stl") 要更改的名称中有空格。此外,在最后部分,即mesh1.stl,1需要可变。怎么做 首先,对于这段代码,我得到的错误如下: sed:-e表达式#1,字符22:未终止的s命令 我试着把/放在末尾 其次,我需要将mesh1作为前

我使用
os.system
在python内部运行sed命令。下面是代码

os.system("sed -i /solid/s/Visualization Toolkit generated SLA File/chestwall/g mesh1.stl")
要更改的名称中有空格。此外,在最后部分,即
mesh1.stl
1
需要可变。怎么做

  • 首先,对于这段代码,我得到的错误如下:

    sed:-e表达式#1,字符22:未终止的s命令

  • 我试着把
    /
    放在末尾

  • 其次,我需要将
    mesh1
    作为前一行的变量。比如说,mesh1作为
    a
    ,每次
    a
    都会改变。怎么写得这样

  • 确保sed语句/命令在双引号或单引号中,然后在将字符串传递到os.system之前使用“+”连接字符串

    import os
    var=1
    os.system("sed -i 's/solid/s/Visualization Toolkit generated SLA File/chestwall/g' mesh" + var + ".stl")
    

    确保sed语句/命令在双引号或单引号中,然后在将字符串传递到os.system之前使用“+”连接字符串

    import os
    var=1
    os.system("sed -i 's/solid/s/Visualization Toolkit generated SLA File/chestwall/g' mesh" + var + ".stl")
    

    函数
    os.system()
    
    subprocess.call()

    请您尝试以下方法:

    import subprocess
    a = 'mesh1'
    cmd = ['sed', '-i', '/solid/s/Visualization Toolkit generated SLA File/chestwall/g', '{0}.stl'.format(a)]
    subprocess.call(cmd)
    

    您可以将命令作为列表而不是字符串传递,并且可以显式地划分参数。

    函数
    os.system()
    
    subprocess.call()

    请您尝试以下方法:

    import subprocess
    a = 'mesh1'
    cmd = ['sed', '-i', '/solid/s/Visualization Toolkit generated SLA File/chestwall/g', '{0}.stl'.format(a)]
    subprocess.call(cmd)
    
    可以将命令作为列表而不是字符串传递,并且可以显式地划分参数