title: Python 3.3 CSV.Writer writes extra blank rows
body: <p>Using Python 3.3 on Windows 8, when writing to a CSV file, I get the error <code>TypeError: 'str' does not support the buffer interface</code> and <code>"wb"</code> flag was used. However when only the <code>"w"</code> flag was used, I get no errors, but every row is separated by a blank row!</p>
  
  <h2>Problem Writing</h2>
  
  <p><strong>Code</strong></p>
  
  <pre><code>test_file_object = csv.reader( open("./files/test.csv", 'r') )
  next(test_file_object )
  
  with open("./files/forest.csv", 'wb') as myfile:
      open_file_object = csv.writer( open("./files/forest.csv", 'wb') )
      i = 0
      for row in test_file_object:
          row.insert(0, output[i].astype(np.uint8))
          open_file_object.writerow(row)
          i += 1
  </code></pre>
  
  <p><strong>Error</strong></p>
  
  <pre><code>---------------------------------------------------------------------------
  TypeError                                 Traceback (most recent call last)
  &lt;ipython-input-121-8cbb94f602a8&gt; in &lt;module&gt;()
        8     for row in test_file_object:
        9         row.insert(0, output[i].astype(np.uint8))
  ---&gt; 10         open_file_object.writerow(row)
       11         i += 1
  
  TypeError: 'str' does not support the buffer interface
  </code></pre>
  
  <hr>
  
  <h2>Problem Reading</h2>
  
  <p>When reading, I cant seem to use the <code>"rb"</code> flags so it will give the error <code>iterator should return strings, not bytes</code> when trying to ignore the first row (headers).</p>
  
  <p><strong>Code</strong></p>
  
  <pre><code>csv_file_object = csv.reader(open('files/train.csv', 'rb'))
  header = next(csv_file_object)
  train_data = []
  for row in csv_file_object:
      train_data.append(row)
  train_data = np.array(train_data)
  </code></pre>
  
  <p><strong>Error</strong></p>
  
  <pre><code>Error                                     Traceback (most recent call last)
  &lt;ipython-input-10-8b13d1956432&gt; in &lt;module&gt;()
        1 csv_file_object = csv.reader(open('files/train.csv', 'rb'))
  ----&gt; 2 header = next(csv_file_object)
        3 train_data = []
        4 for row in csv_file_object:
        5     train_data.append(row)
  
  Error: iterator should return strings, not bytes (did you open the file in text mode?)
  </code></pre>