在python中使用字符串时出错

时间:2016-01-07 02:06:44

标签: python python-2.7 python-3.x

我指定了一个变量:

cmd="sed -i 's/id="556"/id="33442233"\n    pss="120"/g' a.xml"

但是当我试图打印cmd时我得到一个语法错误,似乎是 因为多个'" ...我该如何解决这个问题?

4 个答案:

答案 0 :(得分:3)

使用\转义引号?

cmd="sed -i 's/id=\"556\"/id=\"33442233\"\n pss=\"120\"/g' a.xml"

答案 1 :(得分:2)

使用三重引号:

cmd = '''sed -i 's/id="556"/id="33442233"\n pss="120"/g' a.xml'''

顺便说一下。我在那里看到\n - 如果你想把它保留为反斜杠-n并且没有将它转换为单个换行符,你甚至可以使用它:

cmd = r'''sed -i 's/id="556"/id="33442233"\n pss="120"/g' a.xml'''

答案 2 :(得分:1)

要转义引号,请在字符前添加反斜杠\。例如:
"\"hello\" said he."'\'goodbye\' said she'

答案 3 :(得分:0)

为我工作:

Python 2.7.9 (v2.7.9:648dcafa7e5f, Dec 10 2014, 10:10:46) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> cmd="sed -i \'s\/id=\"556\"\/id=\"33442233\"\n    pss=\"120\"\/g\' a.xml"
>>> print cmd
sed -i 's\/id="556"\/id="33442233"
    pss="120"\/g' a.xml