title: What is the best way to overwrite a specific row in a csv by its index in Python 2.7
body: <p>I have a python script that appends 4 strings to the end of my csv file. The first column is the user's email address, and I want to search the csv to see if that users email address is already in the file, if it is I want to overwrite that whole row with my 4 new strings, but if not I want to continue to just append it to the end. I have it searching the first column for the email, and if it is there it will give me the row.</p>
  
  <pre><code>with open('Mycsvfile.csv', 'rb') as f:
    reader = csv.reader(f)
    indexLoop = []
    for i, row in enumerate(reader):
        if userEmail in row[0]:
            indexLoop.append(i)
  f.close()
  with open("Mycsvfile.csv", 'ab') as file222:
      writer = csv.writer(file222, delimiter=',')
      lines = (userEmail, userDate, userPayment, userStatus)
      writer.writerow(lines)
  file222.close()
  </code></pre>
  
  <p>I want to do something like this, if email is in row it will give me the row index and I can use that to overwrite the whole row with my new data. If it isn't there I will just append the file at the bottom.
  Example:</p>
  
  <pre><code>with open('Mycsvfile.csv', 'rb') as f:
    reader = csv.reader(f)
    new_rows = []
    indexLoop = []
    for i, row in enumerate(reader):
        if userEmail in row[0]:
            indexLoop.append(i)
            new_row = row + indexLoop(userEmail, userDate, userPayment, userStatus)
            new_rows.append(new_row)
  
        else: 
            print "userEmail doesn't exist"
            #(i'd insert my standard append statement here.
  
  f.close
  #now open csv file and writerows(new_row)    
  </code></pre>