diff options
author | Eli Bendersky <eliben@gmail.com> | 2011-03-11 14:39:04 (GMT) |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2011-03-11 14:39:04 (GMT) |
commit | a7a1c1511121a26d6e669111bc515ab41667c77b (patch) | |
tree | 53b8ad9541cf541fb04d85342d4482f0c69a060d /Doc/library/csv.rst | |
parent | e17e9fc37eb092f27c2966d59baab3ca237e76e6 (diff) | |
parent | 9cc6249dee38d7fbccad2a37444ba54b5210fbd0 (diff) | |
download | cpython-a7a1c1511121a26d6e669111bc515ab41667c77b.zip cpython-a7a1c1511121a26d6e669111bc515ab41667c77b.tar.gz cpython-a7a1c1511121a26d6e669111bc515ab41667c77b.tar.bz2 |
merge from 3.1
Diffstat (limited to 'Doc/library/csv.rst')
-rw-r--r-- | Doc/library/csv.rst | 46 |
1 files changed, 26 insertions, 20 deletions
diff --git a/Doc/library/csv.rst b/Doc/library/csv.rst index eca3149..b1b313f 100644 --- a/Doc/library/csv.rst +++ b/Doc/library/csv.rst @@ -419,32 +419,36 @@ Examples The simplest example of reading a CSV file:: import csv - reader = csv.reader(open("some.csv", newline='')) - for row in reader: - print(row) + with open('some.csv', newline='') as f: + reader = csv.reader(f) + for row in reader: + print(row) Reading a file with an alternate format:: import csv - reader = csv.reader(open("passwd"), delimiter=':', quoting=csv.QUOTE_NONE) - for row in reader: - print(row) + with open('passwd') as f: + reader = csv.reader(f, delimiter=':', quoting=csv.QUOTE_NONE) + for row in reader: + print(row) The corresponding simplest possible writing example is:: import csv - writer = csv.writer(open("some.csv", "w")) - writer.writerows(someiterable) + with open('some.csv', 'w') as f: + writer = csv.writer(f) + writer.writerows(someiterable) 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:: - import csv - reader = csv.reader(open("some.csv", newline='', encoding='utf-8')) - 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) The same applies to writing in something other than the system default encoding: specify the encoding argument when opening the output file. @@ -453,18 +457,20 @@ Registering a new dialect:: import csv csv.register_dialect('unixpwd', delimiter=':', quoting=csv.QUOTE_NONE) - reader = csv.reader(open("passwd"), 'unixpwd') + with open('passwd') as f: + reader = csv.reader(f, 'unixpwd') A slightly more advanced use of the reader --- catching and reporting errors:: import csv, sys - filename = "some.csv" - reader = csv.reader(open(filename, newline='')) - try: - for row in reader: - print(row) - except csv.Error as e: - sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e)) + filename = 'some.csv' + with open(filename, newline='') as f: + 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)) And while the module doesn't directly support parsing strings, it can easily be done:: |