我打算从空格分隔的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
答案 0 :(得分:1)
好吧,
fgets()将从文件读取一行,如csv文件。
通过跟踪已读取的行数并知道要复制的行号,实际代码将非常简单。
代码需要:
一些'FILE *变量, 为每个变量调用'fopen()'(确保检查fopen()失败),
循环计数器,
一会儿(fgets(,,))来控制循环。
在循环中,
'if'来决定是否要复制该行,
要复制到输出文件的每一行的fwrite()。
最后,fclose()为每个FILE *变量。
最后,用于保存行的char缓冲区[###]