Search code examples
pythoncsvdelimiter

How to use delimiter for CSV in Python?


I'm having trouble with figuring out how to use the delimiter for csv.writer in Python. I have a CSV file in which the strings separated by commas are in single cell and I need to have each word in each individual cell, e.g:

100 , 2559  ,,Main, St,LEOMA,LEOMA,498,498, AK,AK
140 , 425   ,,Main, St,LEOMA,LEOMA,498,498, AK,AK
100 , 599   ,,Main, St,LEOMA,LEOMA,498,498, AK,AK

should have each word in an individual cell:

100 2559    Main    St  LEOMA   LEOMA   498 498 AK  AK
140 425     Main    St  LEOMA   LEOMA   498 498 AK  AK
100 599     Main    St  LEOMA   LEOMA   498 498 AK  AK

I tried:

import csv
workingdir = "C:\Mer\Ven\sample"
csvfile = workingdir+"\test3.csv"
f=open(csvfile,'wb')

csv.writer(f, delimiter =' ',quotechar =',',quoting=csv.QUOTE_MINIMAL)

Solution

  • Your code is blanking out your file:

    import csv
    workingdir = "C:\Mer\Ven\sample"
    csvfile = workingdir+"\test3.csv"
    f=open(csvfile,'wb') # opens file for writing (erases contents)
    csv.writer(f, delimiter =' ',quotechar =',',quoting=csv.QUOTE_MINIMAL)
    

    if you want to read the file in, you will need to use csv.reader and open the file for reading.

    import csv
    workingdir = "C:\Mer\Ven\sample"
    csvfile = workingdir+"\test3.csv"
    f=open(csvfile,'rb') # opens file for reading
    reader = csv.reader(f)
    for line in reader:
        print line
    

    If you want to write that back out to a new file with different delimiters, you can create a new file and specify those delimiters and write out each line (instead of printing the tuple).