私はin.txt
からデータを読み込み、それから特定の行をSample.xlsx
に書き込んでいます。 start
とend
を含む行の間でデータをグロッピングしています。入力データのこのセクションを解析するときにFlag
を設定しました。 Flag
が設定されている場合、NAME
が含まれ、次の行にはAGE
が含まれ、その後に空白行が含まれています(補足情報:入力ファイルのパターンは次のとおりです)、行内にNAME:
とAGE:
が出現するたびに、このパターンが繰り返される)。xlsxに書き込むと、1つのセルに重複した行が作成される
start is here
NAME:Abe
AGE:40
NAME:John
AGE:20
...
end
入力は上記と同様です。今問題は、私は約1000本のこのような線があることです。したがって、おおよそ333名、時代です。コードを実行した後にExcelシートを開くと、C2はNAME:Abe
が21回繰り返されていることがわかります。 D2はAGE:40
も21回繰り返されています。私は入力を100行に減らし、繰り返しは3に減らしました。なぜこれが起こっているのか分かりません。私が10行、すなわち3つの名前と年齢に変更すると、この問題は起こりません。 C2には1つの名前があり、C3には1つの名前があります。
長い書込みについてお詫び申し上げます。しかし、私がここで間違っていることを教えてください。
読んでいただきありがとうございます。
______________________________________編集-1 ________________________________
私は、次の最小限のコードを用いて細胞を得意とするテキストファイルから基本的な書き込みを試してみました。
for line in fin:
ws['C'+str(i)] = line
i += 1
これも同じエラーを生成します。行はセル内で複数回書き込まれます。入力テキストファイルの行数に基づいて繰り返し回数が増えます。
__________________________________編集-2
__________________________________私は問題を修正しているように見えるが、それは固定しまった理由はまだ分かりません。文字列は問題なく印刷されていたので、最後の文字はlines
から削除しました。これは次の文字でなければなりません。そして今はすべてが期待どおりに機能しています。私はこれが適切な解決策であるのか、なぜこれが起こっているのかは分かりません。とにかく、以下のコードはこの問題を解決するようです。
for line in fin:
ws['C'+str(i)] = line[:-1]
i += 1
あなたのカウンターに問題があると思われます。デバッグコードを追加して、必要に応じて動作するかどうかを確認する必要があります。 –
私もそう思った。しかし、ws ['C' + str(i)] = linesを 'ws ['C' + str(i)] = 'hello' 'に変更し、同様にD列に対して変更しました。 ''は1つのセルに1回のみ表示されます。問題は、現在の 'lines'をそのセルに割り当てるときに起こります。それはちょうど複数回繰り返されます。 – akhilc
また、同じ条件文の下でテキストファイルにも名前と年齢を書いています。また、テキストファイルの出力には繰り返しはありません。 – akhilc