繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM