根据C中的条件将行从一个csv文件复制到另一个

时间:2015-08-03 23:11:58

标签: python c csv copy

我打算从空格分隔的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

1 个答案:

答案 0 :(得分:1)

好吧,

fgets()将从文件读取一行,如csv文件。

通过跟踪已读取的行数并知道要复制的行号,实际代码将非常简单。

代码需要:

一些'FILE *变量, 为每个变量调用'fopen()'(确保检查fopen()失败),

循环计数器,

一会儿(fgets(,,))来控制循环。

在循环中,

'if'来决定是否要复制该行,

要复制到输出文件的每一行的fwrite()。

最后,fclose()为每个FILE *变量。

最后,用于保存行的char缓冲区[###]