Как сохранить многострочную строку в одну строку и без нескольких пробелов - PullRequest
0 голосов
/ 29 марта 2019

Я пытаюсь сохранить в 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 ]

1 голос
/ 29 марта 2019

Добавьте .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')
0 голосов
/ 29 марта 2019

Я предполагаю, что вы хотите весь код в 1 строку для многострочной строки?

, тогда просто сделайте это так

f.write(r"""<rect x="0" y="0" width="%s"

ect ...

Таким образом, вы помещаете все в одну строку

Надеюсь, это поможет

...