Мне нужно прочитать в текстовом файле с 19000 элементами, переупорядочить их, а затем вернуть обратно в файл csv. Проблема в том, что некоторые из записей содержат запятую, и когда я возвращаюсь обратно в csv, он разбивается на запятую. Есть ли способ избежать запятой при выходе?Escaping запятые в файле csv Perl
0
A
ответ
10
Использование Text::CSV. Это будет иметь дело с побегом для вас. Он также будет читать данные, если это применимо. Лучший способ, по моему мнению, не в том, чтобы избежать ваших запятых, а использовать полевые приложения. Они выглядят так:
row 1,some data,"some long text, with a comma"\n
row 2,some more data,"lots of ,,,,,"\n
Вы, конечно, можете просто использовать что-то еще в качестве разделителя. A ;
используется Европейским не-английским Excel, то есть в Германии.
Как другие разделители, так и полевые вложения обычно понимаются большинством других программ, включая Excel и Open Office Calc. Но вы должны, конечно же, проверить свой приемник, прежде чем изменять что-либо в своем выходе.
Как он может разбиться на запятую при выводе, если вы уже прочитали его из файла csv? Он должен был сломаться при чтении уже ... Во всяком случае, см. Ниже. – simbabque
Также ... что вы подразумеваете под «перерывами в запятой»? CSV - это просто текст. Это действительно не сломается. Например, если вы откроете его в Excel позже, он может выглядеть сломанным. Может быть, CSV (с запятой как разделитель) - это не тот формат, который вам нужен? – simbabque
Я не читал из файла csv, который я читал из текстового файла, и что я имею в виду, что он разбивает ячейку на 2 ячейки из-за запятой в тексте – shinjuo