Изменение разделителя в csv с использованием python - PullRequest
0 голосов
/ 22 февраля 2020

У меня есть .csv файл около 30000 строк. В качестве разделителя по умолчанию используется точка с запятой. Я создал небольшой скрипт с python, который преобразует этот разделитель в запятую и сохраняет его в том же файле. Скрипт работает без ошибок, но ничего не делает до конца. Разделитель по-прежнему точка с запятой. Файл .txt создан, но не записывает обратно в основной файл. Код, который я использую, выглядит следующим образом:

import csv
from pathlib import Path
import os

cwd = os.getcwd()  # Get the current working directory (cwd)
files = os.listdir(cwd)  # Get all the files in that directory
print("Files in %r: %s" % (cwd, files))

with open('RadGridExport.csv', mode='r', encoding='utf-8') as infile:
    reader = csv.reader(infile, dialect="excel")
    with open('temp.txt', mode='w', encoding='utf-8') as outfile:
        writer = csv.writer(outfile, delimiter=',')
        writer.writerows(reader)

1 Ответ

1 голос
/ 22 февраля 2020

Вы пропустили разделитель при чтении. По умолчанию он ищет запятую, так как это не тот случай, когда вы должны указывать разделитель:

 reader = csv.reader(infile, dialect="excel",delimiter=";")

И вам не нужно указывать запятую в качестве разделителя при записи, так как это значение по умолчанию.

Или проще всего использовать pandas пакет:


    import pandas as pd
    df=pd.read_csv(infile,sep=';')
    df.to_csv(infile,index=False)
...