Using the csv
module you can do that way:
import csv
writer = csv.writer(open("some.csv", "wb"))
writer.writerow(the_list)
If you need a string just use StringIO
instance as a file:
f = StringIO.StringIO()
writer = csv.writer(f)
writer.writerow(the_list)
print f.getvalue()
The output: a,"one ""two"" three","foo, bar","both""'"
csv
will write in a way it can read back later.
You can fine-tune its output by defining a dialect
, just set quotechar
, escapechar
, etc, as needed:
class SomeDialect(csv.excel):
delimiter = ','
quotechar = '"'
escapechar = "\\"
doublequote = False
lineterminator = '\n'
quoting = csv.QUOTE_MINIMAL
f = cStringIO.StringIO()
writer = csv.writer(f, dialect=SomeDialect)
writer.writerow(the_list)
print f.getvalue()
The output: a,one \"two\" three,"foo, bar",both\"'
The same dialect can be used with csv module to read the string back later to a list.