Как "вырезать" (извлечь подмножество столбцов) файл CSV, содержащий строки в кавычках`

у меня есть файл CSV и я хочу сбросить пару столбцов. Допустим, это пример файла:

column a, column b, column c
value  a, value  b, value  c
value  a, "quoted, b", value c

а теперь предположим, что мы хотим отбросить столбец B, так что результат такой:

column a, column c
value  a, value  c
value  a, value c

если там не были кавычки "quoated, б" я могу сделать это с помощью cut:

cut -d ',' -f 1,3

однако есть эта строка в кавычках. Я мог бы просто загрузить файл с помощью libreoffice, но помимо того, что он менее классный и автоматизируемый, мои файлы hundered MB а некоторые даже превышают максимальное количество строк для LibreOffice Calc.

(Примечание: мои фактические файлы имеют более 30 столбцов, и я хотел бы выбрать около 5-10 столбцов из них. Так что это не похоже на "отбросить последнюю колонку")

30
задан yankee
22.01.2023 10:51 Количество просмотров материала 2995
Распечатать страницу

1 ответ

Если вы можете установить python и easy_install, то вы также можете установить csvkit: https://csvkit.readthedocs.io

и, теперь вы можете запустить простую команду, как показано ниже, чтобы выбрать только столбцы 1 и 3:

csvcut -c 1,3 original_file.csv > new_file.csv

или, другой пример, удалить второй столбец:

csvcut -C 2 original_file.csv > new_file.csv

..

Примечание:

просто предупреждение,ваш CSV выглядит инвалидом. Если вы хотите иметь пробел в данных, вы не должны иметь пробел после запятой/разделителя. Пробел будет просто частью данных, и может испортить цитируемый текст.

как генерируются эти данные? Можно ли его сгенерировать без лишних пробелов? Например. column a,column b,column c

3
отвечен jehad 2023-01-23 18:39

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх