Line break or "\ n" does not work.

Could you tell me why line break \ n does not work?

itemsToWriteToFile = "Number 1:", 12, "\nNumber 2: ", 13, "\nNumber 3: ", 13, "\nNumber 4: ", 14
itemsToWriteToFile = str(itemsToWriteToFile)

itemsToWriteToFile = itemsToWriteToFile.replace('(', "")
itemsToWriteToFile = itemsToWriteToFile.replace(')', "")
itemsToWriteToFile = itemsToWriteToFile.replace('"', "")
itemsToWriteToFile = itemsToWriteToFile.replace(',', "")
itemsToWriteToFile = itemsToWriteToFile.replace('\n', "")

print(itemsToWriteToFile)
+4
source share
4 answers

The str()conversion converts "\ n" to "\\ n".

>>> str('\n')
'\n'
>>> str(['\n'])
"['\\n']"

What is happening there? When you call str()in a list (the same for a tuple), it will call a __str__()list method , which in turn calls __repr__()for each of its elements. Check out what his behavior is:

>>> "\n".__str__()
'\n'
>>> "\n".__repr__()
"'\\n'"

So you have a reason.

As for how to fix this, as Blender suggested, the best option would be to not use str()the list:

''.join(str(x) for x in itemsToWriteToFile)
+2
source

, . ints . str.join(), :

foo = "Number 1:", 12, "\nNumber 2: ", 13, "\nNumber 3: ", 13, "\nNumber 4: ", 14
bar = map(str, foo)

print(''.join(bar))
+2

use this

itemsToWriteToFile = itemsToWriteToFile.translate(None, "(),\"\\n")
+1
source

Use itemsToWriteToFile.replace('\\n', "")insteaditemsToWriteToFile.replace('\n', "")

>>itemsToWriteToFile = itemsToWriteToFile.replace('\\n', "")

Final Output:-

>>> print(itemsToWriteToFile)
'Number 1:' 12 'Number 2: ' 13 'Number 3: ' 13 'Number 4: ' 14
0
source

All Articles