2017-08-14 3 views
0

から特定の行を削除し、私は次のようになりますcsvファイルを持っています。私はそれに応じてpIndexを更新しながら、各行を一度複製するコードを持っています。だから、出力は次のようになります。以下は Pythonはファイル

CCC, rev, pIndex, no. 
23, 2.5, 0, 4 
23, 2.5, 1, 4 
34, 4.3, 2, 3 
34, 4.3, 3, 3 
27, 7.9, 4, 5 
27, 7.9, 5, 5 
12, 5.7, 6, 7 
12, 5.7, 7, 7 

がいることを行うコードです:

with fileinput.input(inplace=True) as f: 
    n = 0 
    for line in f: 
     line = line.rstrip('\n') 
     numbers = line.split(sep = ',') 
     for i in range(2): 
      numbers[3] = n 
      n += 1 
      s = '' 
      for j in numbers: 
       s += str(j) + ',' 
      s = s.rstrip(',') 
      print(s) 

は今、私は1つの重複最初と最後の行のそれぞれを削除するので、基本的に最初の行を削除します(ヘッダの後には、pIndex 0)とファイルの最後の行。私はfileinputを使用して、結果を同じファイルに書き戻そうとしています。試しました

result = [] 
result.append(s) 

これは、各行を別々の配列にします。私は次に、配列としてすべての行を含む別の配列 result_allを作成し、最初と最後の行を取り除くためにresult_all[1:-1]を実行します。しかし、これはうまくいっていないようです。

ご協力いただきますようお願い申し上げます。

答えて

0

行を繰り返し、行1と最後の行をスキップすることができますが、番号行を知る必要があります。

+0

ありがとうございますが、私は多くのファイルに対して一般的にしようとしていますので、 'python script.py filename.csv'のようなコマンドラインで渡したいと思います。 –