0

ElementTreeとminidom(きれいな印刷用)を使用して、CSVファイルを解析してデータをXMLファイルにフォーマットする方法を学んでいます。近づいてきましたが、頭を包み込むことができないような小さな引っ掛かりを1つ叩きました。私は次のコードを持っています:

for csvFile in directory:
    root = Element('Order')
    with open(csvFile, 'rt') as f:
        reader = csv.reader(f)
        for row in reader:
            queue = row[0]
            token = row[1]
            current_order = SubElement(root, 'Token', {'text':token})
            details = SubElement(current_order, 'Queue',
                                 {'queue':queue})

    print prettify(root)

これにより、次のXMLが生成されます。

<?xml version="1.0" ?>
<Order>
  <Token text="token">
    <Queue queue="site_code"/>
  </Token>
  <Token text="H54FC9">
    <Queue queue="Duplex_N-up"/>
  </Token>
</Order>

CSV入力からヘッダーを削除して、XMLが次のようになるようにするにはどうすればよいですか。

<?xml version="1.0" ?>
<Order>
  <Token text="H54FC9">
    <Queue queue="Duplex_N-up"/>
  </Token>
</Order>

ありがとうございました!

4

2 に答える 2

3

csvファイルの最初の行を破棄しようとしていますか?もしそうなら、あなたはそれをかなり簡単に行うことができます:

for csvFile in directory:
    root = Element('Order')
    with open(csvFile, 'rt') as f:
        junk = next(f)         #read the first line, don't do anything with it.
        reader = csv.reader(f)
        for row in reader:
            queue = row[0]
            token = row[1]
            current_order = SubElement(root, 'Token', {'text':token})
            details = SubElement(current_order, 'Queue',
                                 {'queue':queue})

    print prettify(root)
于 2012-12-12T20:09:27.037 に答える
1

CSVファイルに常にヘッダーがある場合は、reader.next()直後に電話してくださいreader=csv.reader(f)

于 2012-12-12T20:18:08.053 に答える