Разделение файла CSV, который содержит 3 пробела в качестве разделителя - PullRequest
0 голосов
/ 11 июня 2018

Я работаю над битым CSV-файлом, который использует 3 пробела в качестве разделения.Есть ли какой-нибудь возможный способ разграничить его как вкладки с python3?В настоящее время мой код выглядит следующим образом:

import csv
with open ("example.csv", "r") as csv_file:
    csv_reader = csv.reader(csv_file, delimiter ="\   ")

    with open("new_example.csv","w") as new_file:
        csv_writer = csv.writer(new_file, delimiter="\t")

        for line in csv_reader:
        csv_writer.writerow(line)

При этом я получаю сообщение об ошибке, что его можно ограничить только одним символом.Другая проблема состоит в том, что ячейки в csv-файле часто содержат 1 пробел (не должны быть разделены).

Ответы [ 2 ]

0 голосов
/ 11 июня 2018

Как говорит ошибка, csv может разделяться только на один символ, и, вероятно, здесь это бесполезно.Просто используйте .replace, чтобы превратить последовательности из трех пробелов в символы табуляции.

with (open("example", "r") as csv_file,
      open("new_example.csv", "w") as new_file):
    for line in csv_file:
        new_file.write(line.replace('   ', '\t'))
0 голосов
/ 11 июня 2018

Хорошо, если pandas жизнеспособен для вас, это должно вас отсортировать:

import pandas as pd

inFile = pd.read_csv('example.csv', sep='\s+')
inFile.to_csv('new_example.csv', sep='\t')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...