2

私はPythonが初めてで、小さなスクリプトに問題があります。

現在、定義されている for ループは 1 回だけ実行されます。

コードは次のとおりです (各行に 8 つの要素があります)。

#!/usr/local/bin/python

def string_to_xml(string):
    entries = string.split(',')
    result = "<item>\n"
    result += "\t<distributor>" + entries[0] + "</distributor>\n"
    result += "\t<number>" + entries[1] + "</number>\n"
    result += "\t<description>" + entries[2] + "</description>\n"
    result += "\t<brand>" + entries[3] + "</brand>\n"
    result += "\t<casesize>" + entries[4] + "</casesize>\n"
    result += "\t<unitsize>" + entries[5] + "</unitsize>\n"
    result += "\t<caseprice>" + entries[6] + "</caseprice>\n"
    result += "\t<unitprice>" + entries[7] + "</unitprice>\n"
    result += "</item>"
    return result

with open("input.csv") as csvfile:
    for line in csvfile:
        print string_to_xml(line)

このように、string_to_xml を 1 回呼び出した結果のみを出力します。for ループ内のステートメントを次のように変更すると:

for line in csvfile:
    print line

ファイルのすべての行を正しく印刷します。

関数 string_to_xml を呼び出すと、ループが 1 回しか実行されないのはなぜですか?

編集:これが役立つ場合、csvファイルの最初の2行は次のとおりです。

BIRITE,130405,Steak Sauce,Kraft,24,5oz,43.96,1.83
BIRITE,441045,Anchovy Filet,Maria,12,13oz,51.83,4.32
4

2 に答える 2