這是我第一次發佈問題,所以如果我犯了錯誤,我提前道歉。python:如何刪除行並從CSV中修改特定的列表字符串
我目前試圖創建一個自定義的Python程序(幾乎解析器),在數據呈現爲這樣:
junk
junk
junk
junk
junk
junk
fields title title title
data_type d_type d_type d_type
data1 data2 data 3
data4 data 5 data6
data7 data8 data9
junk
凡我所期望的輸出是:
title title title
data1 data2 data3
data4 data5 data6
data7 data8 data9
這裏是我的代碼的工作部分,我到目前爲止:
import csv
import itertools
with open('file.log','rb') as csvfile:
rowlist = csv.reader(csvfile, delimiter = '\t')
for row in itertools.islice(rowlist,6,12):
print row
每當上面的代碼運行它產生一系列列表作爲列表這裏
['fields','title1', 'title2', 'title3']
['data_type','d_type','d_type', 'd_type']
['data1', 'data2', 'data3']
['data4', 'data5', 'data6']
['data7', 'data8', 'data9']
的第一數據條目(DATA1,DATA4,DATA7)觀察始終是一個數,而其它數據項可以是任意字符串/數字/字符。
的itertools
解決了切斷文件的頂部和底部,但是我仍然在努力
- 刪除「DATA_TYPE線」
- 刪除「領域」,那就是: [」字段','title1','title2','title3'] -----> ['title1','title2','title3']
我看到一些解決方案,刪除行/覆蓋但是,我沒有太多的內存空間,因此我必須保持打開/關閉/寫入最低限度。任何和所有的幫助是非常感謝。
我們h我們不知道是否應該包含或排除一行。 – TigerhawkT3
那麼,爲什麼不行'if row [0] =='fields':row = row [1:]'和'if row [0] =='data_type':continue'? –
您可以使用'itertools.ifilterfalse'進一步過濾您的迭代器https://docs.python.org/2/library/itertools.html#itertools.ifilterfalse。 – Scott