*sigh* - i don't like this workflow at all

This commit is contained in:
Skip Montanaro 2011-03-19 13:05:58 -05:00
parent 482e7e061b
commit b7d1aebb66

View file

@ -418,101 +418,50 @@ Examples
The simplest example of reading a CSV file::
<<<<<<< local
import csv
with f = open("some.csv", newline=''):
reader = csv.reader(f)
for row in reader:
print(row)
=======
import csv
with open('some.csv', newline='') as f:
reader = csv.reader(f)
for row in reader:
print(row)
>>>>>>> other
Reading a file with an alternate format::
<<<<<<< local
import csv
with f = open("passwd"):
reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
for row in reader:
print(row)
=======
import csv
with open('passwd') as f:
reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE)
for row in reader:
print(row)
>>>>>>> other
The corresponding simplest possible writing example is::
<<<<<<< local
import csv
with f = open("some.csv", "w"):
writer = csv.writer(f)
writer.writerows(someiterable)
=======
import csv
with open('some.csv', 'w') as f:
writer = csv.writer(f)
writer.writerows(someiterable)
>>>>>>> other
Since :func:`open` is used to open a CSV file for reading, the file
will by default be decoded into unicode using the system default
encoding (see :func:`locale.getpreferredencoding`). To decode a file
using a different encoding, use the ``encoding`` argument of open::
<<<<<<< local
import csv
f = open("some.csv", newline='', encoding='utf-8'):
reader = csv.reader(f)
for row in reader:
print(row)
=======
import csv
with open('some.csv', newline='', encoding='utf-8') as f:
reader = csv.reader(f)
for row in reader:
print(row)
>>>>>>> other
The same applies to writing in something other than the system default
encoding: specify the encoding argument when opening the output file.
Registering a new dialect::
<<<<<<< local
import csv
csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)
with f = open("passwd"):
reader = csv.reader(f, 'unixpwd')
for row in reader:
pass
=======
import csv
csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE)
with open('passwd') as f:
reader = csv.reader(f, 'unixpwd')
>>>>>>> other
A slightly more advanced use of the reader --- catching and reporting errors::
<<<<<<< local
import csv, sys
filename = "some.csv"
with f = open(filename, newline=''):
reader = csv.reader(f)
try:
for row in reader:
print(row)
except csv.Error as e:
sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e))
=======
import csv, sys
filename = 'some.csv'
with open(filename, newline='') as f:
@ -522,7 +471,6 @@ A slightly more advanced use of the reader --- catching and reporting errors::
print(row)
except csv.Error as e:
sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e))
>>>>>>> other
And while the module doesn't directly support parsing strings, it can easily be
done::