你能告诉我为什么断线\ n不起作用吗?
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)
答案 0 :(得分:3)
str()
转换正在将“\ n”转换为“\\ n”。
>>> str('\n')
'\n'
>>> str(['\n'])
"['\\n']"
那里发生了什么?当您在列表上调用str()
(对于元组相同)时,将调用列表的__str__()
方法,该方法又会在其每个元素上调用__repr__()
。让我们检查一下它的行为:
>>> "\n".__str__()
'\n'
>>> "\n".__repr__()
"'\\n'"
所以你有原因。
关于如何修复它,就像Blender提出的那样,最好的选择是不在列表中使用str()
:
''.join(str(x) for x in itemsToWriteToFile)
答案 1 :(得分:2)
所有其他答案都在解决甚至不存在的问题。将您的字符串和整数元组转换为字符串列表。然后,使用str.join()
将它们连接成一个大字符串:
foo = "Number 1:", 12, "\nNumber 2: ", 13, "\nNumber 3: ", 13, "\nNumber 4: ", 14
bar = map(str, foo)
print(''.join(bar))
答案 2 :(得分:1)
使用此
itemsToWriteToFile = itemsToWriteToFile.translate(None, "(),\"\\n")
答案 3 :(得分:0)
使用itemsToWriteToFile.replace('\\n', "")
代替itemsToWriteToFile.replace('\n', "")
>>itemsToWriteToFile = itemsToWriteToFile.replace('\\n', "")
Final Output:-
>>> print(itemsToWriteToFile)
'Number 1:' 12 'Number 2: ' 13 'Number 3: ' 13 'Number 4: ' 14
答案 4 :(得分:0)
我也遇到了这个问题,我通过进行以下更改来解决了这个问题:
然后使用{{value | linebreaks}}终于可以了。由于上面Sigfried的回答,猜测字符串中的\ n无效。