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" +'))

でも!データを変更する前に、データから改行を削除しているわけではありません。その結果、フォーマット、行全体(改行を含む)、そして2番目の部分を取得します。

Pythonの組み込みrstripメソッドを使用して実行することをお勧めします。

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

注意したいことの1つは、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"))

でも!お使いのOSによっては、デフォルトの行末が異なる場合があります。正しく行うには、次のようにします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 に答える