我试图在文件的每一行前加上“(2个空格/标签后”)并附加字符串 - “\ r \ n”+“。此操作之前的文件行看起来像folllows。
<!--You have a CHOICE of the next 5 items at this level-->
<!--Optional:-->
<urn:Account id=\"?\">
<!--Optional:-->
............
.............
我使用以下代码,
inf=open("req.txt","r")
outf=open("out.txt","w")
for line in inf.readlines():
outf.write("\" "+line+"\\r\\n\" +")
inf.close()
outf.close()
预先支出正如预期的那样发生,但附加没有正确发生。最终结果是所有行都以 - \ r \ n“+”为前缀,但第一行除外。第一行前面只有“。
我希望每行前面加上“并附加”\ r \ n“+”
答案 0 :(得分:1)
您应该使用python内置的字符串格式。
outf.write("%s%s%s" % ('" ', line, '\r\n" +'))
然而!在更改数据之前,您不会从数据中删除换行符。因此,您可以获得格式,整行(包括换行符),然后是第二部分。
您希望通过内置rstrip
方法的python来运行它。
outf.write("%s%s%s" % ('" ', line.rstrip(), '\r\n" +'))
您要注意的一件事是,rstrip会删除任何空格,如果您只想删除新行,那么您可以使用:
outf.write("%s%s%s" % ('" ', line.rstrip("\r\n"), '\r\n" +'))
但是,一旦你这样做,你需要再次在字符串的末尾添加一个新行。
outf.write("%s%s%s%s" % ('" ', line.rstrip("\r\n"), '\r\n" +', "\r\n"))
然而!根据您的操作系统,您的默认行结尾可能会有所不同,为了正确地执行此操作,您需要import os
然后:
outf.write("%s%s%s%s" % ('" ', line.rstrip(os.linesep), '\r\n" +', os.linesep))
答案 1 :(得分:1)
您是否有理由不使用xml模块来读取/写入xml文件?因为它可以简化您的代码。
编辑: 这是一个PyMOTW ElementTree教程,以及文档python.org/xml.etree.ElementTree