字符串追加在python中

时间:2012-05-29 07:10:48

标签: python append string-formatting

我试图在文件的每一行前加上“(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“+”

2 个答案:

答案 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