在写入文件时,在文件的每一行之间添加空格。尝试使用.strip()
删除空格:
newstring = (mytemplate.render(identifiers=zipped_list))
print (newstring)
当内容读入字符串newstring时,它将看起来像:
<headers>
<universe>Default</universe>
<domain>Instrument</domain>
<universeOperation>Update</universeOperation>
<acquisitionOperation>None</acquisitionOperation>
<manufactureOperation>None</manufactureOperation>
<publicationOperation>None</publicationOperation>
<businessDate>2017-06-13</businessDate>
</headers>
<items>
<item>
<identifiers>
<ID_BB_GLOBAL>TEST1234</ID_BB_GLOBAL>
</identifiers>
<classifiers>
<CL_SUBSCRIBER>TEST</CL_SUBSCRIBER>
<CL_STRATEGY>TEST</CL_STRATEGY>
</classifiers>
当我将字符串写入文件时:
file = open(FILE_PATH + "Test.xml", "w")
file.write(newstring)
它看起来像这样:
<headers>
<universe>Default</universe>
<domain>Instrument</domain>
<universeOperation>Update</universeOperation>
<acquisitionOperation>None</acquisitionOperation>
<manufactureOperation>None</manufactureOperation>
<publicationOperation>None</publicationOperation>
<businessDate>2017-06-13</businessDate>
</headers>
<items>
<item>
<identifiers>
<ID_BB_GLOBAL>BBG0016RLJ79</ID_BB_GLOBAL>
</identifiers>
<classifiers>
<CL_SUBSCRIBER>SYS</CL_SUBSCRIBER>
<CL_REMOVE>N</CL_REMOVE>
<CL_STRATEGY>MAM_ID</CL_STRATEGY>
</classifiers>
如何删除每行之间的空白?
答案 0 :(得分:0)
.strip()
删除字符串的开头和结尾空格:
我想知道为什么您的print()
和您的file.write()
产生如此不同的输出,因为.write()
实际上没有追加/修改换行符。也许是Windows的东西(CRLF在Windows上是标准的)?
无论如何,如果您要删除多个换行符,则应该删除不需要的换行符:
your_string = re.sub(r'[\n\r]+', "\n", your_string, re.MULTILINE|re.DOTALL)
(当然,您需要import re
。)
编辑
我很好奇,并在发布答案后进行了一些快速研究,它的确似乎是Windows操作系统:在Windows上,python自动将每个换行符转换为系统特定的表示形式,即Windows上的CRLF。为了避免这种情况,需要指定Python应该如何处理换行符,例如:
file = open(your_file, newline="\n", ...)
所以这可能是更好的解决方案(也是更快的解决方案) 另请参阅: