Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python: Can not write to CSV file

I have this snippet of Python code:

import csv

def analyse(csvFileToRead, csvFileToWrite):
    # open file to read
    openedCsvFileToRead = open(csvFileToRead)
    reader = csv.reader(openedCsvFileToRead)

    # open file to write
    openedCsvFileToWrite = open(csvFileToWrite)
    writer = csv.writer(openedCsvFileToWrite)

    for row in reader:
        date = row[8]
        if date[0] == "5":
            writer.writerow(row)

    # close file
    openedCsvFileToRead.close()
    openedCsvFileToWrite.close()

if __name__ == "__main__":
    analyse("mydata.csv", "mynewdata.csv")

when run using Python 3.4 I get the following error message:

Traceback (most recent call last):
  File "main.py", line 40, in <module>
    analyse("mydata.csv", "mynewdata.csv")
  File "main.py", line 25, in analyse
    writer.writerow(row)
io.UnsupportedOperation: not writable

What Am I doing wrong? I'm on Windows 7 64bit.

like image 884
Amani Avatar asked Dec 19 '22 13:12

Amani


1 Answers

You have to open the file in write mode:

openedCSvFileToWrite = open(csvFileToWrite, "w")

Note that in Python 2.x, the docs always use 'wb', rather than 'w'.

like image 109
dano Avatar answered Dec 27 '22 09:12

dano