CSV文件行最后被删除

时间:2016-12-09 14:40:11

标签: python csv

目前我有一个我想要操作的原始CSV文件。每行的[3]值,即row [3]包含一个字母“HKD”和一个数字的字符串。我正在尝试创建一个删除字母和空格的新CSV文件。出于某种原因,当我这样做时,最后约60行被切断了。我试图打印出所有行,它们在python shell中显示得很好但不会打印到我的CSV上。我不确定为什么。 csv输出文件在第1931行被截断,但它并没有完全切断它在第一列中显示1931但不包含其余数据的整行。

指数1931周围的打印:

['1929', '8163 ', 'Merdeka Financial Services Group Ltd.', '154']
['1930', '8179 ', 'Food Idea Holdings Ltd.', '153']
['1931', '8079 ', 'Easy Repay Finance & Investment Ltd.', '150']
['1932', '8106 ', 'Zheda Lande Scitech Ltd. - H Shares', '149']
['1933', '1160 ', 'Grand Investment International Ltd.', '149']
['1934', '8363 ', 'SDM Group Holdings Ltd.', '148']

以下是我的代码:

import csv
csv_in = open('mcapdata.csv','rb')

writer = csv.writer(open('final-HK-MCap.csv','a'))

for row in csv.reader(csv_in):
    row[3] = row[3].replace('HKD ','')
    writer.writerow(row)

我不明白为什么它会在shell中打印得很好但不会输出到我的csv文件中。我的python代码中是否存在导致这种情况的不良做法?

1 个答案:

答案 0 :(得分:1)

脚本结束时可能没有写出文件缓冲区。在文件指针对象上调用 btn.addTarget(self, action:#selector(myFunc(_:)), forControlEvents: .TouchUpInside) 将刷新缓冲区。 pythonic方法是使用.close()上下文。

with