2017-08-07 6 views
0

作ります各行(1,2,...)の要素(複製線を含む)全ての行がこの順Pythonは、私はこれらのような行を持つCSVファイルを持っているそれぞれの行を複製し、各ラインの変化

0.10089,0,0,1,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0 0.10089,0,0,2,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0 0.10089,0,0,3,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0の一部となるように

0.10955,0,0,4,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0 0.10955,0,0,5,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0 0.10955,0,0,6,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0

私はそれゆえ、各コンマのインデックス、および第4要素である位置を知る

with fileinput.input(inplace=True) as f: for line in f: line = line.rstrip('\n') comma_pos_array = [i for i,x in enumerate(line) if x == ','] for i in range(3): print(line)

Iは0 to (number of lines in f)*3から連続する整数のアレイを作るようなアプローチを試みましたこの新しい配列内の対応する要素で4番目の要素を変更しますが、動作していないようです。

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

答えて

0

これは、(CSVモジュールなしの)正確に何かを生成します:

n = 1 # counter 

for line in f: 
    numbers = line.split(sep=',') # getting list of separated numbers 
    for i in range(3): 
     numbers[3] = n # replacing with proper value 
     n += 1 
     s = '' 
     for i in numbers: # adding commas 
      s += str(i) + ',' 
     s.rstrip(',') # removing last comma 
     print(s) 
0

これは中/出力を読み書きするcsv moduleを使用してバリアントである:

from io import StringIO 
from csv import reader, writer 

txt = '''0.10089,0,0,1,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0 
0.10955,0,0,2,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0''' 

REPEAT = 3 

with StringIO(txt) as infile, StringIO() as outfile: 

    rows = reader(infile) 
    out_csv = writer(outfile) 

    counter = 0 

    for row in rows: 
     for i in range(REPEAT): 
      counter += 1 
      row[3] = counter 
      out_csv.writerow(row) 

    print(outfile.getvalue()) 

と出力を生成します。

0.10089,0,0,1,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0 
0.10089,0,0,2,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0 
0.10089,0,0,3,0,0,0,0,0,0,-1.8,-0.7,1999998.0,0,0,0,80,81.226,158.25,0 
0.10955,0,0,4,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0 
0.10955,0,0,5,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0 
0.10955,0,0,6,0,0,0,0,0,0,-1.5,0.4,-4.1,0,0,0,88.127,87.784,158.47,0 

(あなたがあなたのファイルとStringIO部品を交換する必要があります;私はここで例を自己完結型にするために使用しました)

関連する問題