Как использовать разделитель для 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)
Ответы
Ответ 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 = ","