目前我有一个我想要操作的原始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代码中是否存在导致这种情况的不良做法?
答案 0 :(得分:1)
脚本结束时可能没有写出文件缓冲区。在文件指针对象上调用 btn.addTarget(self, action:#selector(myFunc(_:)), forControlEvents: .TouchUpInside)
将刷新缓冲区。 pythonic方法是使用.close()
上下文。
with