#python #python-3.x
Вопрос:
У меня есть папка, в которой присутствует 100 csv-файлов. В каждом csv-файле есть столбец, в котором все данные заключены в двойные кавычки, а для некоторых строк также имеются тройные кавычки.
------------- | column_name | | "A" | | "B" | | "" | | """ | | "" | | "A" | ----------------
Я хочу прояснить это как
------------- | column_name | | A | | B | | | | | | | | A | ----------------
Комментарии:
1. Эти скриншоты, похоже, из Excel. Excel безвозвратно искажает CSV-файлы при их открытии, поэтому то, что вы видите в Excel, не является гарантией того, что на самом деле находится в файлах. Пожалуйста, добавьте вместо этого выдержки из файлов, скопированных из текстового редактора.
2. Вы не удаляете их: вы анализируете весь файл целиком. Один из способов разрешить CSV-файлу включать общее в поле-это заключать поле в двойные кавычки, чтобы запятые внутри кавычек обрабатывались буквально, а не как разделители полей. Распространенный способ избежать буквальных двойных кавычек, чтобы быть частью поля, состоит в том , чтобы удвоить их: строка типа
a,"b"",""c",d
содержит три поля со значениямиa
,b","c
, иd
.3. И, как и в случае с любым форматом файла, вам необходимо знать соглашения, используемые для правильного анализа файла.
4. в текстовом редакторе он показывает «A»,»B»,»»,»»», и я хочу A, B, , ,
5. Кроме того, любой здравомыслящий анализатор CSV подумает, что это неправильный CSV, если предположить, что
"
это символ цитаты. Вот один лайнер, чтобы заменить его, если вы работаете в Linux:aws s3 cp s3://bucket/file.csv /tmp/tmp.csv amp;amp; sed 's/"//g' /tmp/tmp.csv gt; /tmp/noquote.csv amp;amp; aws s3 cp /tmp/noquote.csv s3://bucket/noquote.csv
… но опять же … ваш файл выглядит очень разбитым.