CSV文件行在结尾处被剪切

2024-06-25 06:38:42 发布

您现在位置:Python中文网/ 问答频道 /正文

目前我有一个原始的CSV文件,我想操纵。每行的[3]值(即第[3]行)包含一个包含字母“HKD”和一个数字的字符串。我试图创建一个新的CSV文件,删除字母和空白。因为某些原因,当我这样做的时候,最后60行被切断了。我试图打印出所有的行,它们在pythonshell中显示得很好,但不会打印到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']

下面是我的代码:

^{pr2}$

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


Tags: 文件csv字符串代码字母group原因数字
1条回答
网友
1楼 · 发布于 2024-06-25 06:38:42

可能是脚本结束时文件缓冲区没有被写出。对file pointer对象调用.close()将刷新缓冲区。python方法是使用with上下文。在

import csv

with open('mcapdata.csv','rb') as csv_in, open('final-HK-MCap.csv','a') as csv_out:
    reader = csv.reader(csv_in)
    writer = csv.writer(csv_out)

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

相关问题 更多 >