Подтвердить что ты не робот

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

У меня возникли проблемы с выяснением использования разделителя для csv.writer в 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:\Mer\Ven\sample"
csvfile = workingdir+"\test3.csv"
f=open(csvfile,'wb')

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

Ответ 1

Ваш код гасит ваш файл:

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.reader и открыть файл для чтения.

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

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

Ответ 2

ok, вот что я понял из вашего вопроса. Вы пишете файл 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 = ","