Überprüfen Sie die CSV-gegen bestimmtes format

Warte ich auf den upload einer CSV-Datei, maximale Größe 1MB zu einem web-Formular, das passen sollte ein bestimmtes format ähnlich:

"<String>","<String>",<Int>,<Float>

Werden später verarbeitet. Ich möchte, um zu überprüfen, die Datei passt zu einem festgelegten format, so dass das Programm ein, der später verwenden Sie die Datei nicht erhalten unerwartete Eingabe, und dass es keine Sicherheitsbedenken (sagen einige-injection-Angriff gegen das parsing Skript, das macht einige Berechnungen und db-insert).

(1) Was wäre der beste Weg zu gehen über das tun dies, wäre eine schnelle und Gründliche? Von dem, was ich recherchiert hab, konnte ich gehen den Weg von regex oder etwas mehr wie diese. Ich habe die python csv Modul aber nicht erscheint, alle integrierten in die Prüfung.

(2) Angenommen, ich gehe für eine regex, kann jemand mich direkt auf in Richtung der beste Weg, dies zu tun? Ich Spiel für illegale Zeichen, und weist auf, dass? (zB. kein '/' '\' '<' '>' '{' '}' usw.) oder passen auf alle gesetzlichen zB. [a-zA-Z0-9]{1,10} für die string-Komponente? Ich bin nicht allzu vertraut mit regulären Ausdrücken, so dass die Zeiger oder Beispiele würde sehr geschätzt.

BEARBEITEN:
Sollten Strings enthalten keine Kommas oder Anführungszeichen, es würde nur einen Namen enthalten (dh. first name, last name). Und ja, ich vergaß hinzuzufügen, Sie wäre in doppelte Anführungszeichen gesetzt.

EDIT #2:
Danke für die vielen Antworten. Cutplace ist sehr interessant aber ist ein standalone. Beschlossen zu gehen mit pyparsing in das Ende, denn es gibt mehr Flexibilität, sollte ich hinzufügen, mehr Formate.

  • was würde Ihr format für strings, die Kommas enthalten (string sollte das doppelte Anführungszeichen)
InformationsquelleAutor | 2009-09-07
Schreibe einen Kommentar