写入文件时,文件中的每一行之间都会添加空格。尝试使用.strip()
删除空白:
newstring = (mytemplate.render(identifiers=zipped_list))
print (newstring)
当内容被读入string 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>
如何删除每行之间的空白
.strip()
删除字符串的前导和尾随空格:我想知道为什么你的
print()
和你的file.write()
会产生如此不同的输出,因为.write()
实际上并不追加/修改换行符。也许是Windows的东西(CRLF是Windows的标准配置)无论如何,在您的情况下,删除多个换行符应该删除不需要的换行符:
(当然,您需要
import re
。)编辑
我很好奇,在发布了我的答案之后做了一些快速的研究,它看起来确实是一个Windows的东西:在Windows上,python自动地将每一个换行符转换成系统特定的表示,也就是Windows上的CRLF。为了避免这种情况,需要指定Python应该如何处理换行符,如:
所以这可能是一个更好的解决方案(也是一个更快的解决方案) 另请参见:
相关问题 更多 >
编程相关推荐