diff options
Diffstat (limited to 'paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py')
| -rw-r--r-- | paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py b/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py new file mode 100644 index 0000000..2bc13a9 --- /dev/null +++ b/paste/webkit/FakeWebware/MiscUtils/CSVJoiner.py @@ -0,0 +1,21 @@ +import types + + +def joinCSVFields(fields): + """ + Returns a CSV record (eg a string) from a sequence of fields. + Fields containing commands (,) or double quotes (") are quotes + and double quotes are escaped (""). The terminating newline is + NOT included. + """ + newFields = [] + for field in fields: + assert type(field) is types.StringType + if field.find('"')!=-1: + newField = '"' + field.replace('"', '""') + '"' + elif field.find(',')!=-1 or field.find('\n')!=-1 or field.find('\r')!=-1: + newField = '"' + field + '"' + else: + newField = field + newFields.append(newField) + return ','.join(newFields) |
