Как использовать разделитель для csv в python

у меня возникли проблемы с выяснением, как использовать разделитель для csv.писатель в Python. У меня есть csv-файл, в котором строки, разделенные запятыми, находятся в одной ячейке, и мне нужно иметь каждое слово в каждой отдельной ячейке. Например:

   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

должно быть

   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

(каждое слово в отдельной ячейке).

пробовал:

import csv
workingdir = "C:MerVensample"
csvfile = workingdir+"test3.csv"
f=open(csvfile,'wb')

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

2 ответов


ваш код закрывает ваш файл:

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)

Если вы хотите прочитать файл, вам нужно будет использовать csv.чтения и открытия файла для чтения.

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

Если вы хотите записать это обратно в новый файл с разными разделителями, вы можете создать новый файл и указать эти разделители и записать каждую строку (вместо печати кортежа).


ОК, Вот что я понял из вашего вопроса. Вы пишете файл csv из python, но когда вы открываете этот файл в какое-то другое приложение, такое как excel или open office, они показывают полную строку в одной ячейке, а не каждое слово в отдельной ячейке. Я прав??

Если я тогда, пожалуйста, попробуйте это,

import csv

with open(r"C:\test.csv", "wb") as csv_file:
    writer = csv.writer(csv_file, delimiter =",",quoting=csv.QUOTE_MINIMAL)
    writer.writerow(["a","b"])

необходимо указать delimiter = ","