簡體   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