2017-08-14 6 views
0

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

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を使用して、結果を同じファイルに書き戻そうとしています。

答えて

0

行を読み込んでいる間に配列に格納し、削除したい行を残すことができます。次に、配列をファイルに書き込みます。

あなたはこのように、たとえばcsv libraryを使用してCSVファイルに書き込むことができます:

import csv 
with open('some.csv', 'wb') as f: 
    writer = csv.writer(f) 
    writer.writerows(someiterable) 
+0

感謝。私は 'result = []' 'result.append(s)' 'result = result [1:-1]'を試しましたが、単に各行に空白の配列を出力します。 –

+0

配列で完全なコードを表示できますか?追加された?あなたはCSVライターを試しましたか? – Leon

+0

[こちら](https://github.com/AnanDvd/MPI-Pigino/commit/e7972209e4740b7747e47f06895f568e766506c7)はコードへのリンクです。私は 'python3 script.py file.csv'のようなcmdラインからそれを実行できるように、たくさんのファイルを一般化しようとしています。 –