Using python csv writer without quotations
Quoting behavior is controlled by the various quoting
arguments provided to the writer (or set on the Dialect
object if you prefer to do things that way). The default setting is QUOTE_MINIMAL
, which will not produce the behavior you're describing unless a value contains your delimiter character, quote character, or line terminator character. Doublecheck your test data - [u'123', u'hello']
won't produce what you describe, but [u'123', u' hello']
would.
You can specify QUOTE_NONE
if you're sure that's the behavior you want, in which case it'll either try to escape instances of your delimiter character if you set an escape character, or raise an exception if you don't.
Do you need the csv lib? Just join the strings...
>>> res = [u'123', u'hello']
>>> print res
[u'123', u'hello']
>>> print " ".join(res)
123 hello
You can set the csv.writer
to quote nothing with quoting=csv.QUOTE_NONE
for example:
import csv
with open('eggs.csv', 'wb') as csvfile:
spamwriter = csv.writer(csvfile, delimiter=' ',
escapechar=' ', quoting=csv.QUOTE_NONE)
spamwriter.writerow(['Spam'] * 5 + ['Baked Beans'])
spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam'])
Produces:
Spam Spam Spam Spam Spam Baked Beans
Spam Lovely Spam Wonderful Spam
If you do QUOTING_NONE
you also need and escape character.