以下是我的CSV文件内容的示例:
Fruit, colour, ripe,
apple, green,,
banana, yellow,,
pineapple, green,,
plum, purple,,
我想遍历CSV文件的内容,根据一个测试(CSV数据的外部性,使用提供给封闭函数的输入值),最终得到如下结果:
^{pr2}$我当前的代码如下:
csv_data = csv.reader(open('./data/fruit_data.csv', 'r'))
for row in csv_data:
fruit = row[0]
if fruit == input:
# Here, write 'true' in the 'ripe' column.
使用CSV模块或pandas
一次性添加新数据是很容易的,但是这里我需要迭代地添加数据。似乎我无法在适当的地方更改CSV文件(?),但如果我写到一个不同的CSV文件,它将覆盖循环中的每个匹配项,因此它将只反映该值。在
基本上有两种方法:
在打开第二个文件之前,在第二个文件循环之前附加第一行。完成所有行后,关闭初始文件。示例:How do you append to a file?
2-从初始csv读取所有内容。然后对您创建的对象进行更改(我强烈建议使用Pandas进行此操作)。然后写一个csv。下面是该方法的一个示例:
在1和2之间的选择应该是真正的尺度。如果你的csv太大了,以至于你不能按你想要的方式读取和操作它,那么你应该逐行修改它。如果你能读懂整件事,然后用熊猫来操纵,你的生活就会轻松多了。在
如果创建临时文件,则可以在读取行时写入这些行。如果在Unix上使用
os.rename
,则,“the renaming will be an atomic operation”:这里的
get_input
是用来获得input
值的任何东西的替代物。在如果要创建新的CSV文件
基本上,上一个问题中唯一缺少的就是最后一个陈述,也就是写,否则就是在标准不匹配的情况下添加。在
另一种可能是使用
linestartswith
相关问题 更多 >
编程相关推荐