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