2

したがって、私が抱えている問題は、既存のテキスト ファイルを取得して、各行に xml タグを追加する新しいファイルを作成できるようにする必要があることです。例えば:

Hello
World
This
Is
The
Text

このような新しいテキストファイルに書き込まれる必要があります

<tag1>Hello</tag1>
<tag2>World</tag2>
<tag3>This</tag3>
<tag4>Is</tag4>
<tag5>The</tag5>
<tag6>Text</tag6>

新しいファイルを開いて書き込む方法は知っていますが、データを操作するのに問題があります。

4

3 に答える 3

1

簡単にやりたい場合は、テキストファイルをvimで開き、次のように入力します。

:%s!\(.*\)!\=printf("<tag%d>%s</tag%d>", line("."), submatch(1), line("."))!g

または、Python を使用する場合は、

from xml.sax.saxutils import escape
with open('file.txt', 'r') as f:
  print "\n".join((lambda y: ["<tag%d>%s</tag%d>" % (i+1, escape(y[i].strip()), i+1) for i in range(0, len(y))])(f.readlines()))

@goncaloppからの回答も

from xml.sax.saxutils import escape
for i,line in enumerate(open('file.txt')):
  print "<tag{0}>{1}</tag{0}>".format(i+1,escape(line.strip()))
于 2012-11-29T05:31:50.897 に答える
1

これは、自分で解決できるはずの非常に単純な問題です。あなたは何か問題を抱えているので、一般的にほとんどのプログラミングの問題に対処する方法を紹介します。

まず、問題を分割します。xml タグを含めるように変更する必要があるテキスト ファイルがあります。ファイルを開くこととファイルに書き込むことは別の問題であることを正しく認識しており、それらの解決方法も既に知っています。さらに、明らかですが、各行で同様の繰り返しパターンを扱っていることに言及する価値があります。したがって、テキストの各行を必要なものに変換する方法を知っていれば、問題は解決したことになります。では、その最初の行を見てみましょう。

Hello

になる

<tag1>Hello</tag1>

一方を他方に変換するには、どのような手順を実行する必要がありますか? 2 番目は、文字列の最初と最後にテキストが挿入された 1 番目の文字列です。これは文字列連結と呼ばれ、グーグルで検索するとすぐに答えが見つかります。さらに、各行で異なるタグ番号の問題があります。これは、カウンター変数を保持し、数値を文字列に変換し、それも連結することで解決されます。

カウンターの例を次に示します。

for i in range(10):
    print i

そして別:

i=0
while i<10:
    print i
    i+=1

それでおしまい。私はあなたが今、自分で問題を解決できると確信しています。

于 2012-11-29T05:34:00.103 に答える
-1
>>> f = open('file.txt', 'r')
>>> lines = f.readlines()
>>> for index in range(len(lines)):
...     print '<tag%s>%s</tag%s>'%(index+1, lines[index].strip(), index+1)
... 
<tag1>Hello</tag1>
<tag2>World</tag2>
<tag3>This</tag3>
<tag4>Is</tag4>
<tag5>The</tag5>
<tag6>Text</tag6>
Hope you know how to write into file.
于 2012-11-29T05:28:56.423 に答える