如何将多行字符串保存在一行中并且没有多个空格

时间:2019-03-29 10:01:54

标签: python string multilinestring

我正在尝试将不包含换行符和任何多个空格的多行字符串保存到txt:

with open('test.txt','w') as f:    
f.write( r"""<rect
       x="0"
       y="0"
       width="%s"
       height="%s"
       stroke="red"
       stroke-width="1"
       fill-opacity="0"  />""" %(3,4)+"\n" )

当我打开文件cat 'text.txt'时,文件位于多行上。我怎么能用没有多个空格的单行代码?

<rect x="0" y="0" width="3" height="4" stroke="red" stroke-width="1" fill-opacity="0" />

是否不使用例如"".join()或其他会影响代码可读性的方法?

使用.replace('\n', '')不会删除多个空格。

2 个答案:

答案 0 :(得分:1)

在字符串的末尾添加.replace('\n', '')

编辑:“在字符串的末尾”是指多行,例如:

f.write( r"""<rect
       x="0"
       y="0"
       width="%s"
       height="%s"
       stroke="red"
       stroke-width="1"
       fill-opacity="0"  />""".replace('\n', '') %(3,4)+"\n" )
                              ^^^^^^^^^^^^^^^^^^
                                     HERE

另一种可能性是受益于Python的字符串自动连接,如下所示:

f.write('<rect '
        'x="0" '
        'y="0" '
        'width="%s" '
        'height="%s" '
        'stroke="red" '
        'stroke-width="1" '
        'fill-opacity="0"/> ' % (3,4) + '\n')

答案 1 :(得分:0)

我猜想您希望多行字符串的所有代码都在1行中吗?

然后像这样

.pro

ect ...

那样,您将所有内容都放在一行上

希望这会有所帮助