Я ожидаю пользователей, чтобы загрузить CSV-файл максимального размера 1Мб на веб-форму, которая должна соответствовать данный формат, аналогичный:Проверка CSV против данного формата
"<String>","<String>",<Int>,<Float>
Это будет обработан позднее. Я хотел бы подтвердить, что файл соответствует указанному формату, так что программа, которая позже будет использовать файл, не получит неожиданного ввода и что нет проблем с безопасностью (скажем, инъекция для скрипта синтаксического анализа, которая выполняет некоторые вычисления и вставка db).
(1) Что было бы самым лучшим способом сделать это, чтобы быть быстрым и тщательным? Из того, что я исследовал, я мог пойти по пути регулярного выражения или чего-то большего, как this. Я просмотрел модуль csv python, но, похоже, он не имеет встроенной проверки.
(2) Предполагаю, что я иду на регулярное выражение, может ли кто-нибудь направить меня к лучшему способу сделать это? Согласны ли я с незаконными символами и отказываюсь от этого? (например, no '/' '\' '<' '>' '{' '}' и т. д.) или соответствовать всем юридическим, например. [a-zA-Z0-9] {1,10} для строкового компонента? Я не слишком хорошо знаком с регулярными выражениями, поэтому оценщики и примеры будут оценены.
EDIT: Строки не должны содержать запятых или кавычек, в которых просто будет указано имя (то есть имя, фамилия). И да, я забыл добавить, что они будут двойными.
EDIT # 2: Спасибо за все ответы. Cutplace довольно интересна, но является автономной. В конце концов решила пойти с pyparsing, потому что это дает большую гибкость, если я добавлю больше форматов.
что бы ваш формат сделать для строк, которые содержат запятые (строка должна быть в двойных кавычках) – moogs