[英]Copying rows from one csv file to another based on a condition in C
我打算根据索引数组列出某些行,这些行以空格分隔的CSV文件(每行的格式不是很严格,就分隔各列的空格而言)复制到另一行中要复制的行。
在Python中(使用csv包),我将使用以下代码:
with open("final_shapes.csv", "a") as myfile:
myfile.write(str([shapes_list[m] for m in range(0, len(x)) if (x[m] == 1)]) + "\n" )
我想知道是否有一种方法可以在C中做到这一点(逐行处理csv文件,而不是按字符处理)。 谢谢!
编辑:我不希望不使用新模块,但是如果确实使工作更容易,那就这样吧。
编辑2:我正在读取的CSV文件看起来像这样(不分隔两列的空格数是常数)-
1 var_0_9 SB 1.00000000000000e+00 0.00000000e+00 1.00000000e+00
2 var_0_17 SB 0.00000000000000e+00 0.00000000e+00 1.00000000e+00
3 var_0_26 MK 1.00000000000000e+00 0.00000000e+00 1.00000000e+00
4 var_0_34 SB 1.00000000000000e+00 0.00000000e+00 1.00000000e+00
好,
fgets()将从文件(如csv文件)读取一行。
通过跟踪已读取的行数并知道要复制的行号,实际代码将非常简单。
该代码将需要:
几个“ FILE *变量”,对每个变量调用“ fopen()”(请务必检查fopen()失败),
循环计数器
一会儿(fgets(,,))来控制循环。
在循环中
一个“如果”来决定是否要复制该行,
每行的fwrite()复制到输出文件。
最后,对每个FILE *变量使用fclose()。
最后,一个char缓冲区[###]用于保存一行
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.