我正在嘗試在具有特定值的特定行拆分 csv 檔案,但我不知道該怎么做。csv 檔案是從我們使用的程式匯出的資料,它由兩個不同的部分組成。該檔案看起來像這樣,第二部分始終以“[Faces]”開頭。
[Name]
Plane 1750
[Data]
Node Number, X [ m ], Y [ m ], Z [ m ], AV WF
0, -1.96213058e 02, -2.73303375e 02, 1.75000000e 00, 2.01742917e-01
1, -1.96173523e 02, -2.73252655e 02, 1.75000000e 00, 2.02091664e-01
606479, -2.06638428e 02, 2.93843475e 02, 1.75000000e 00, 3.21377516e-01
606480, -2.05079956e 02, 2.94933014e 02, 1.75000000e 00, 3.27591240e-01
[Faces]
400, 335, 336, 339, 338
196775, 644, 610, 611, 196774
1658, 1657, 1656, 196787, 196788
1562, 1561, 1439, 1438, 196794
現在我想知道如何在值 '[Faces]' 的位置拆分檔案并將其下的所有資料保存在一個新的 csv 檔案中。
此執行是已使用 pandas 和 numpy 的腳本的一部分。
uj5u.com熱心網友回復:
嘗試消耗線直到我們遇到[Faces]線:
with open('data.txt') as fp:
while fp.readline().strip() != '[Faces]':
pass
df = pd.read_csv(fp, header=None, skipinitialspace=True)
with open('faces.csv') as fp:
fp.write('[Faces]\n')
df.to_csv(fp, index=False)
內容faces.csv:
[Faces]
0,1,2,3,4
400,335,336,339,338
196775,644,610,611,196774
1658,1657,1656,196787,196788
1562,1561,1439,1438,196794
更新
沒有熊貓:
with open('data.txt') as inp, open('faces.csv', 'w') as out:
while inp.readline().strip() != '[Faces]':
pass
out.writelines(['Faces\n'] inp.readlines())
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/397948.html
