以下のコードをテストしましたが、29 行目以外はすべて期待どおりに動作します。final.write(invrow) は実際にはファイルに書き込みません。単純な印刷インブローを使用すると、問題なく表示されます。エラーは発生しません。ここで何が起きているのでしょうか? 私は何が欠けていますか?私は何を正しくしていないのですか?
import csv
inv = csv.DictReader(open('ireport.txt', 'rU'), dialect='excel-tab', delimiter="\t")
vbr = csv.DictReader(open('vb.txt', 'rU'), dialect='excel-tab', delimiter="\t")
mainr = csv.DictReader(open('main.txt', 'rU'), dialect='excel-tab', delimiter="\t")
final = open('ireport2.tab', 'w')
inva = []
maina = []
vba = []
for row in inv:
inva.append(row)
for row in mainr:
maina.append(row)
for row in vbr:
vba.append(row)
for invrow in inva:
for mainrow in maina:
try:
if invrow['\xef\xbb\xbfPART_CODE'] == mainrow['PART CODE']:
invrow['MAINQTY'] = mainrow['ON-HAND']
print invrow # works
final.write(invrow) #doesn't work. Why?
except TypeError:
pass
except ValueError:
pass
final.close()