2

我正在尝试在文件的每一行前面加上“(在“之后的 2 个空格/制表符”)并附加字符串-“\r\n”+”。此操作之前的文件行如下所示。

        <!--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"+"

4

2 回答 2

1

您可能应该使用 python 的内置字符串格式。

outf.write("%s%s%s" % ('"          ', line, '\r\n" +'))

然而!在更改数据之前,您不会从数据中删除换行符。结果,您将获得格式,整行(包括换行符),然后是第二部分。

您需要通过 python 的内置rstrip方法运行它。

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))
于 2012-05-29T07:29:32.107 回答
1

您是否有理由不使用 xml 模块来读取/写入 xml 文件?因为它可以简化你的代码。

编辑:这是PyMOTW ElementTree教程和文档python.org/xml.etree.ElementTree

于 2012-05-29T07:34:48.313 回答