[Python-checkins] cpython: sigh - i don't like this workflow at all (original) (raw)
skip.montanaro python-checkins at python.org
Sat Mar 19 19:08:12 CET 2011
- Previous message: [Python-checkins] cpython (merge default -> default): merge from upstream
- Next message: [Python-checkins] cpython: untab
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
http://hg.python.org/cpython/rev/145c3703ce48 changeset: 68685:145c3703ce48 user: Skip Montanaro <skip at pobox.com> date: Sat Mar 19 13:05:58 2011 -0500 summary: sigh - i don't like this workflow at all
files: Doc/library/csv.rst
diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -418,101 +418,50 @@
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 @@ 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::
-- Repository URL: http://hg.python.org/cpython
- Previous message: [Python-checkins] cpython (merge default -> default): merge from upstream
- Next message: [Python-checkins] cpython: untab
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]